学研君 2025-04-01 11:59 浙江
NumPy 数组操作秘籍,助力数据处理与科学计算。
1 数组创建与操作
numpy.array([1, 2, 3])
numpy.arange(start, stop, step)
numpy.linspace(start, stop, num)
numpy.zeros(shape)
numpy.ones(shape)
numpy.eye(n)
array.reshape(new_shape)
array.flatten()
array.T
numpy.hstack((array1, array2))
numpy.vstack((array1, array2))
numpy.split(array, indices_or_sections)
2 数组索引与切片
array[i]
array[start:stop:step]
array[-1]
array[[1, 3, 5]]
array[array > 0]
array[i] = value
array[::-1]
3 数学运算
array1 + array2
array1 - array2
array1 * array2
array1 / array2
numpy.dot(array1, array2)
numpy.matmul(array1, array2)
numpy.sqrt(array)
numpy.exp(array)
numpy.log(array)
numpy.sin(array)
numpy.cos(array)
numpy.sum(array)
numpy.cumsum(array)
4 统计运算
numpy.mean(array)
numpy.median(array)
numpy.std(array)
numpy.var(array)
numpy.min(array)
numpy.max(array)
numpy.argmin(array)
numpy.argmax(array)
numpy.corrcoef(array1, array2)
5 随机操作
numpy.random.rand(shape)
numpy.random.randint(low, high, size)
numpy.random.shuffle(array)
numpy.random.choice(array, size)
6 线性代数
numpy.linalg.eig(array)
numpy.linalg.solve(A, b)
numpy.linalg.det(array)
numpy.linalg.inv(array)
7 数组比较
array1 == array2
array1 != array2
numpy.any(array)
numpy.all(array)
8 排序
numpy.sort(array)
numpy.sort(array, axis=0)
numpy.argsort(array)
9 集合操作
numpy.unique(array)
numpy.intersect1d(array1, array2)
numpy.union1d(array1, array2)
numpy.setdiff1d(array1, array2)
10 广播机制
11 内存效率
array.view()
)进行高效内存切片。numpy.copy()
创建数组的深拷贝。12 向量化
13 文件输入/输出
numpy.savetxt(filename, array)
numpy.loadtxt(filename)
14 日期处理
使用numpy.datetime64
进行日期和时间操作。
15 多项式运算
numpy.poly1d([系数])
poly(x)
16 图像处理
使用NumPy进行基本的图像处理(例如裁剪、调整大小)。
17 掩码数组
使用掩码数组(numpy.ma
)处理缺失或无效数据。
18 插值
对数据进行插值:numpy.interp(x, xp, fp)
19 傅里叶变换
numpy.fft.fft(array)
numpy.fft.fft2(array)
20 常数
访问数学常数,如numpy.pi
和numpy.e
。
21 多项式拟合
对数据进行多项式拟合:numpy.polyfit(x, y, degree)
22 内存映射
使用内存映射数组高效访问大型数据集。
23 多项式求根
求多项式的根:numpy.roots(系数)
24 N维数组
创建N维数组:numpy.ndarray(shape)
25 掩码值
根据条件掩码值:numpy.ma.masked_where(condition, array)
26 NaN和无穷值处理
处理NaN和无穷值:numpy.isnan()
和numpy.isinf()
27 堆叠
沿新轴堆叠数组:numpy.stack(arrays, axis)
28 直方图
计算直方图:numpy.histogram(array, bins)
29 卷积
numpy.convolve(array1, array2)
numpy.convolve2d(array1, array2)
30 广播规则
理解并利用NumPy的广播规则。
31 克罗内克积
计算克罗内克积:numpy.kron(array1, array2)
32 花式索引
使用索引数组进行高级索引。
33 多项式积分
对多项式进行积分:numpy.polyint(poly)
34 NaN处理
处理NaN值:numpy.nan_to_num(array)
35 向量堆叠
将一维数组堆叠成二维数组:numpy.column_stack((array1, array2))
36 网格生成
创建坐标网格:numpy.meshgrid(x, y)
37 多项式求导
对多项式求导:numpy.polyder(poly)
38 多项式求值
在特定值处计算多项式的值:numpy.polyval(poly, x)
39 步长技巧
使用numpy.lib.stride_tricks
实现高效内存使用。
40 C序与F序
根据访问模式理解并选择数组顺序(C序或Fortran序)。
41 NaN传播
使用numpy.nanmean()
等函数妥善处理NaN值。
42 einsum函数
利用numpy.einsum
进行高级张量运算。
这些技巧涵盖了NumPy的广泛功能。根据具体用例,某些技巧可能比其他技巧更适用。