python中的numpy库

1. 核心功能
- 多维数组操作:提供高效的
ndarray
对象,支持向量、矩阵、高维数组运算。 - 数学函数集成:内置三角函数、指数函数、统计函数等,如
np.sin()
,np.exp()
,np.mean()
。 - 线性代数:支持矩阵乘法、求逆、特征值计算等(通过
np.linalg
模块)。 - 随机数生成:提供均匀分布、正态分布等随机数生成函数(如
np.random.rand()
)。 - 文件读写:支持 CSV、二进制文件等数据格式的读写。
2. 常用类与方法
创建数组:
1
2
3
4
5
6
7
8
9
10
11
12import numpy as np
# 从列表创建
arr = np.array([1, 2, 3])
# 全零/全一数组
zeros = np.zeros((2, 3)) # 2行3列全零
ones = np.ones((3, 4), dtype=int) # 3行4列全一,指定数据类型
# 等差/等分数组
arange = np.arange(0, 10, 2) # [0,2,4,6,8]
linspace = np.linspace(0, 1, 5) # [0.0, 0.25, 0.5, 0.75, 1.0]数组属性:
shape
:维度(如(3, 4)
表示3行4列)。dtype
:数据类型(如int32
,float64
)。ndim
:维度数(一维、二维等)。size
:元素总数。
数组操作:
reshape()
:改变形状(如arr.reshape(3, 4)
)。flatten()
:展平为一维数组。transpose()
:转置(行列互换)。concatenate()
:合并数组(按行或列)。
数学运算:
1
2
3
4
5
6a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # 加法 → [5,7,9]
print(a * 2) # 标量乘法 → [2,4,6]
print(np.dot(a, b)) # 点积 → 32统计函数:
np.mean()
:平均值。np.std()
:标准差。np.max()
/np.min()
:最大值/最小值。
线性代数:
1
2
3
4
5A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(np.dot(A, B)) # 矩阵乘法 → [[19,22], [43,50]]
print(np.linalg.inv(A)) # 矩阵求逆(需方阵)随机数生成:
1
2
3
4
5
6
7
8# 均匀分布(0-1)
rand = np.random.rand(2, 3)
# 正态分布
randn = np.random.randn(3, 4)
# 随机整数(1-10)
randint = np.random.randint(1, 11, size=(5,))
3. 使用示例
数组索引与切片:
1
2
3
4arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[0, 1]) # 输出第二行第一列 → 2
print(arr[1:, :2]) # 输出第二行到最后一行,前两列 → [[4,5], [7,8]]广播机制:
1
2
3a = np.array([1, 2, 3])
b = 2
print(a * b) # 输出 [2,4,6](标量自动广播到每个元素)文件读写:
1
2
3
4
5# 保存到 CSV
np.savetxt("data.csv", arr, delimiter=",")
# 从 CSV 读取
loaded_arr = np.loadtxt("data.csv", delimiter=",")
4. 注意事项
- 数据类型一致性:确保数组元素类型一致,避免隐式转换错误。
- 越界访问:避免使用超出数组维度的索引(如
arr[10]
对长度为5的数组)。 - 内存管理:处理大型数组时,注意内存使用情况,避免溢出。
- 广播规则:理解不同形状数组间的运算规则(如
(3,)
与(3,1)
的广播)。 - 文件路径:读写文件时检查路径是否存在及权限问题。
总结
- 基础操作:用
np.array()
创建数组,reshape()
调整形状,dtype
指定数据类型。 - 数学运算:直接对数组进行加减乘除,或使用
np.dot()
计算点积。 - 统计分析:用
np.mean()
,np.std()
等函数快速计算统计量。 - 线性代数:通过
np.linalg
模块进行矩阵运算。 - 随机数:用
np.random
模块生成各种分布的随机数。
- 标题: python中的numpy库
- 作者: lemon
- 创建于 : 2025-04-12 22:06:53
- 更新于 : 2025-04-12 22:16:02
- 链接: https://lemon2003.github.io/post/20250412220653.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论