首页 python 正文
  • 本文约1823字,阅读需9分钟
  • 75
  • 0

Numpy速成教程

摘要

NumPy 是 Python 中进行科学计算的基础库之一。它提供了高性能的多维数组对象(ndarray)和与数组相关的各种操作。Numpy包含两大利器ndarray以及切片和索引。 以下是 NumPy 的速成指南,涵盖一些基础知识和常用功能。 1. 安装 NumPy 如果你还没有安装 NumPy,可以通过 pip 安装: pip install numpy ...

NumPy 是 Python 中进行科学计算的基础库之一。它提供了高性能的多维数组对象(ndarray)和与数组相关的各种操作。Numpy包含两大利器ndarray以及切片和索引。

以下是 NumPy 的速成指南,涵盖一些基础知识和常用功能。

1. 安装 NumPy

如果你还没有安装 NumPy,可以通过 pip 安装:

pip install numpy

2. 导入 NumPy

使用 NumPy 前,首先要导入它:

import numpy as np

3. 创建数组

你可以使用 np.array 创建 NumPy 数组:

# 一维数组
arr1 = np.array([1, 2, 3, 4, 5])

# 二维数组(矩阵)
arr2 = np.array([[1, 2, 3], [4, 5, 6]])

4. 数组属性

NumPy 数组有许多属性,如形状、维度、数据类型等:

print(arr1.shape)    # 输出: (5,)
print(arr2.shape)    # 输出: (2, 3)
print(arr1.ndim)     # 输出: 1  (表示一维数组)
print(arr2.ndim)     # 输出: 2  (表示二维数组)
print(arr1.dtype)    # 输出: int64 (取决于平台,可能为 int32)

5. 创建特殊数组

NumPy 提供了创建特定类型数组的快捷方法:

np.zeros((3, 4))    # 创建一个3x4的全零数组
np.ones((2, 3))     # 创建一个2x3的全一数组
np.eye(3)           # 创建一个3x3的单位矩阵
np.arange(0, 10, 2) # 创建一个从0到10,步长为2的一维数组
np.linspace(0, 1, 5) # 创建一个从0到1,均匀分布的5个数

6. 数组运算

NumPy 数组支持基本的算术运算和矩阵运算:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 元素级运算
print(a + b)    # 输出: [5 7 9]
print(a * b)    # 输出: [4 10 18]

# 矩阵乘法
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(np.dot(A, B)) # 输出: [[19 22], [43 50]]

# 广播机制
print(a + 10)   # 输出: [11 12 13] (广播)

7. 数组切片和索引

你可以像处理 Python 列表一样处理 NumPy 数组的切片和索引:

arr = np.array([1, 2, 3, 4, 5])

# 索引
print(arr[0])   # 输出: 1

# 切片
print(arr[1:3]) # 输出: [2 3]

# 多维数组切片
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr2[1:, 1:]) # 输出: [[5 6], [8 9]]

8. 数组变形和拼接

NumPy 提供了多种变形和拼接数组的方法:

arr = np.array([[1, 2, 3], [4, 5, 6]])

# 数组变形
arr_reshaped = arr.reshape(3, 2)  # 输出: [[1 2], [3 4], [5 6]]

# 数组拼接
arr_vstack = np.vstack((arr, arr))  # 垂直堆叠
arr_hstack = np.hstack((arr, arr))  # 水平堆叠

9. 通用函数 (ufunc)

NumPy 提供了许多通用函数用于数组的元素级操作:

arr = np.array([1, 2, 3, 4, 5])

# 平方根
print(np.sqrt(arr))  # 输出: [1. 1.41421356 1.73205081 2. 2.23606798]

# 自然对数
print(np.log(arr))   # 输出: [0. 0.69314718 1.09861229 1.38629436 1.60943791]

10. 随机数生成

NumPy 的 random 模块提供了生成随机数的方法:

# 生成一个0到1之间的随机数
print(np.random.rand())

# 生成一个指定形状的随机数数组
print(np.random.rand(3, 3))

# 生成一个整数随机数
print(np.random.randint(0, 10, size=(3, 3)))

# 随机打乱数组
arr = np.array([1, 2, 3, 4, 5])
np.random.shuffle(arr)
print(arr) # 数组顺序被随机打乱

11. 总结

NumPy 是一个功能强大的工具,适合数据分析、科学计算和工程应用。通过以上速成内容,你可以快速上手并开始使用 NumPy 进行各种数据处理任务。要深入了解更多高级功能,可以查阅 NumPy 官方文档。

标签:NumPy

扫描二维码,在手机上阅读
    评论