📚 简介
NumPy是Python科学计算的基础库,提供高性能的多维数组对象。
🚀 数组创建
import numpy as np
# 一维数组
a = np.array([1, 2, 3, 4, 5])
# 全0数组
a = np.zeros((3, 4))
# 全1数组
a = np.ones((2, 4))
# 递增数组
a = np.arange(3, 7) # [3, 4, 5, 6]
# 等差数组
a = np.linspace(0, 1, 6) # [0., 0.2, 0.4, 0.6, 0.8, 1.]
# 随机数组
a = np.random.rand(2, 4)
# 指定数据类型
a = np.zeros((4, 2), dtype=np.int16)
# 改变数据类型
b = a.astype(int)
🔢 数组运算
a = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7, 8])
# 四则运算
c = a + b
d = a / b
# 点积
e = a.dot(b) # 70
f = a @ b # 70
# 数学函数
b = np.sqrt(a) # 平方根
b = np.exp(a) # 指数
b = np.sin(a) # 正弦
b = np.log(a) # 对数
b = np.abs(a) # 绝对值
b = np.ceil(a) # 向上取整
b = np.floor(a) # 向下取整
b = np.round(a) # 四舍五入
📊 统计函数
a = np.array([1, 2, 3, 4])
a.min() # 最小值
a.max() # 最大值
a.argmin() # 最小值索引
a.argmax() # 最大值索引
a.sum() # 总和
a.mean() # 平均值
np.median(a) # 中位数
a.std() # 标准差
a.var() # 方差
✂️ 切片操作
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a[0, 1] # 取值: 2
a[a > 5] # 条件筛选: [6, 7, 8]
a[0:2, 1:3] # 切片
a[:, 1:3] # 所有行
a[0:2, ::2] # 间隔取值
a[::-1, ::-1] # 翻转
🧮 矩阵操作
# 特殊矩阵
np.ones((3, 3)) # 全1矩阵
np.zeros((3, 3)) # 全0矩阵
np.eye(3) # 对角矩阵
np.identity(3) # 单位矩阵
np.full((3, 3), 3) # 全3矩阵
np.random.rand(3, 3) # 随机矩阵
# 矩阵运算
a.T # 转置
np.linalg.inv(a) # 逆矩阵
np.linalg.det(a) # 行列式
np.linalg.matrix_rank(a) # 秩
np.linalg.eig(a) # 特征值和特征向量
np.linalg.svd(a) # 奇异值分解