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 官方文档。