学研君 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.Tnumpy.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] = valuearray[::-1]3 数学运算
array1 + array2array1 - array2array1 * array2array1 / array2numpy.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 == array2array1 != array2numpy.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的广泛功能。根据具体用例,某些技巧可能比其他技巧更适用。
