一篇简单易懂Numpy 核心50个操作,值得收藏!


38cfd3826c4e2d1023865b287ac38d66.gif

作者:郭震

Numpy是Python中最流行的数值计算库之一.它提供了强大的多维数组对象和丰富的函数库,用于高效地执行数值运算.在这篇文章中,我们将介绍 Numpy 的核心50个操作,使用 Numpy 的优点.

为什么使用Numpy?
  1. 高性能:Numpy 的底层实现是用 C 语言编写的,具有极高的计算效率.

  2. 多维数组对象:Numpy 提供了 ndarray 对象,用于存储和操作多维数组数据.

  3. 丰富的函数库:Numpy 提供了大量的函数,用于执行各种数值运算,如线性代数、统计学、傅里叶变换等.

  4. 集成性好:Numpy 可以与其他科学计算库(如 SciPy、Pandas、Matplotlib)无缝集成.

  5. 跨平台支持:Numpy 支持在多种操作系统(如 Windows、Linux、MacOS)上运行.

1. 数组创建与初始化
  1. 创建一维数组

    import numpy as np
    arr = np.array([1, 2, 3])
    print(arr)
  2. 创建二维数组

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr)
  3. 创建全零数组

    arr = np.zeros((2, 3))
    print(arr)
  4. 创建全一数组

    arr = np.ones((2, 3))
    print(arr)
  5. 创建空数组

    arr = np.empty((2, 3))
    print(arr)
  6. 创建单位矩阵

    arr = np.eye(3)
    print(arr)
  7. 创建等间距数组

    arr = np.arange(0, 10, 2)
    print(arr)
  8. 创建线性间距数组

    arr = np.linspace(0, 1, 5)
    print(arr)
  9. 创建随机数组

    arr = np.random.random((2, 3))
    print(arr)
  10. 创建正态分布数组

    arr = np.random.randn(2, 3)
    print(arr)
2. 数组属性
  1. 数组形状

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr.shape)
  2. 数组维度

    print(arr.ndim)
  3. 数组元素总数

    print(arr.size)
  4. 数组数据类型

    print(arr.dtype)
  5. 数组元素大小(字节)

    print(arr.itemsize)
  6. 数组总字节数

    print(arr.nbytes)
3. 数组操作
  1. 数组重塑

    arr = np.array([1, 2, 3, 4, 5, 6])
    arr = arr.reshape((2, 3))
    print(arr)
  2. 数组展平

    arr = arr.flatten()
    print(arr)
  3. 数组转置

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    arr = arr.T
    print(arr)
  4. 数组拼接

    arr1 = np.array([[1, 2], [3, 4]])
    arr2 = np.array([[5, 6], [7, 8]])
    arr = np.vstack((arr1, arr2))  # 垂直拼接
    print(arr)
  5. 数组水平拼接

    arr = np.hstack((arr1, arr2))  # 水平拼接
    print(arr)
  6. 数组拆分

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    arr1, arr2 = np.hsplit(arr, 2)  # 水平拆分
    print(arr1, arr2)
  7. 数组元素求和

    arr = np.array([1, 2, 3])
    print(arr.sum())
  8. 数组按轴求和

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr.sum(axis=0))  # 列求和
    print(arr.sum(axis=1))  # 行求和
  9. 数组元素最大值

    print(arr.max())
  10. 数组按轴最大值

    print(arr.max(axis=0))  # 列最大值
    print(arr.max(axis=1))  # 行最大值
  11. 数组元素最小值

    print(arr.min())
  12. 数组按轴最小值

    print(arr.min(axis=0))  # 列最小值
    print(arr.min(axis=1))  # 行最小值
  13. 数组元素平均值

    print(arr.mean())
  14. 数组按轴平均值

    print(arr.mean(axis=0))  # 列平均值
    print(arr.mean(axis=1))  # 行平均值
4. 数组运算
  1. 数组元素相加

    arr1 = np.array([1, 2, 3])
    arr2 = np.array([4, 5, 6])
    print(np.add(arr1, arr2))
  2. 数组元素相减

    print(np.subtract(arr1, arr2))
  3. 数组元素相乘

    print(np.multiply(arr1, arr2))
  4. 数组元素相除

    print(np.divide(arr1, arr2))
  5. 数组点积

    print(np.dot(arr1, arr2))
  6. 数组矩阵乘法

    arr1 = np.array([[1, 2], [3, 4]])
    arr2 = np.array([[5, 6], [7, 8]])
    print(np.matmul(arr1, arr2))
  7. 数组元素幂运算

    arr = np.array([1, 2, 3])
    print(np.power(arr, 2))
  8. 数组开平方

    print(np.sqrt(arr))
5. 逻辑运算与条件筛选
  1. 数组元素比较

    arr1 = np.array([1, 2, 3])
    arr2 = np.array([2, 2, 4])
    print(arr1 == arr2)
  2. 数组条件筛选

    arr = np.array([1, 2, 3, 4, 5])
    print(arr[arr > 2])
  3. 数组元素替换

    arr = np.array([1, 2, 3, 4, 5])
    arr[arr > 3] = 0
    print(arr)
  4. 数组布尔索引

    arr = np.array([1, 2, 3, 4, 5])
    mask = arr > 2
    print(arr[mask])
6. 线性代数与统计运算
  1. 矩阵求逆

    arr = np.array([[1, 2], [3, 4]])
    print(np.linalg.inv(arr))
  2. 矩阵行列式

    print(np.linalg.det(arr))
  3. 矩阵特征值

    print(np.linalg.eig(arr))
  4. 数组方差

    arr = np.array([1, 2, 3, 4, 5])
    print(np.var(arr))
  5. 数组标准差

    print(np.std(arr))
  6. 数组中位数

    print(np.median(arr))
  7. 数组百分位数

    print(np.percentile(arr, 50))
  8. 数组协方差

    arr1 = np.array([1, 2, 3])
    arr2 = np.array([4, 5, 6])
    print(np.cov(arr1, arr2))

总结

通过以上50 个核心操作的介绍,我们可以看到 Numpy 在数值计算中的强大功能和广泛应用.它不仅提供了多维数组对象和丰富的函数库,还能够高效地执行各种数值运算.使用 Numpy,可以大大提高数据处理的效率和代码的可读性,是进行科学计算和数据分析的理想选择.希望这篇文章对你掌握 Numpy 核心操作有所帮助,祝你在数据科学的道路上不断进步!

感谢你的支持,原创不易,希望转发,点击,以及收藏,也可以点击阅读原文更多AI知识分享,同时也可以关注知识星球:郭震AI学习星球

最后,若想利用副业时间提高技能和收入,可以加入我的星球:d87ffeeadaa4cd0b9cbd0de0514f8f83.png长按上图二维码查看「郭震AI学习星球」

  • 更多、数据分析、爬虫、前后端开发、人工智能等教程参考.

  • 以上全文,欢迎继续点击阅读原文学习,阅读更多AI资讯,[请点击这里]  https://zglg.work/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值