机器学习初学者 04月01日 13:21
【Python】100个NumPy小技巧,让你精通Python科学计算
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入介绍了NumPy在数据处理与科学计算中的应用,涵盖数组创建、索引切片、数学运算、统计运算、随机操作、线性代数等多个方面。文章详细讲解了NumPy数组的各种操作方法,包括数组的重塑、拼接、分割,以及常用的数学函数、统计函数和线性代数函数的使用。此外,还提到了NumPy的广播机制、内存效率、文件输入/输出、日期处理、多项式运算、图像处理、掩码数组等高级技巧,旨在帮助读者高效地利用NumPy进行数据分析和科学计算。

🔢 数组创建与操作:NumPy提供了多种创建数组的方法,如`numpy.array()`、`numpy.arange()`、`numpy.linspace()`等,可以创建不同类型的数组,包括全零数组、全一数组、单位矩阵等。数组的重塑、扁平化、转置以及拼接、分割等操作,方便用户根据需求调整数组的结构。

🔍 数组索引与切片:NumPy支持灵活的数组索引和切片操作,可以访问单个元素、切片数组、访问最后一个元素或多个元素,以及使用布尔索引。通过索引设置元素和反转数组,使得用户可以方便地获取和修改数组中的数据。

➕ 数学运算:NumPy提供了丰富的数学运算功能,包括逐元素加减乘除、点积、矩阵乘法、求平方根、指数、对数、三角函数等。这些运算可以应用于整个数组,方便用户进行数值计算和数据分析。

📊 统计运算:NumPy提供了常用的统计运算,如计算均值、中位数、标准差、方差、最大值、最小值,以及查找最大值和最小值的索引。此外,还支持计算相关系数,方便用户进行数据统计和分析。

💡 随机操作:NumPy的随机操作功能允许用户生成随机数、随机整数,打乱数组,以及随机选择元素。这些功能在模拟、机器学习等领域有广泛应用。

学研君 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
    检查是否有元素为True:numpy.any(array)
    检查所有元素是否都为True: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 内存效率 

    使用NumPy的视图(例如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.pinumpy.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的广泛功能。根据具体用例,某些技巧可能比其他技巧更适用。

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

NumPy 数组操作 数据处理 科学计算
相关文章