【Python】NumPy库的介绍及用法

本文介绍了NumPy在图像处理、机器学习、数据分析和科学计算等领域的应用,强调了它是Python进行大量数据处理的基础库。文章详细讲解了NumPy的安装、基本用法,如数组创建、运算、形状调整和随机数生成等,并展示了常见方法的实例。
摘要由CSDN通过智能技术生成

目录

1、应用场景

2、NumPy-三方库


1、应用场景

NumPy(Numerical Python)是Python的一个开源的数值计算扩展库,主要用于对大量数据进行高效存储和计算。以下是一些NumPy在实际中的应用场景:

  1. 图像处理: 利用NumPy的多维数组,可以方便地对图像进行处理,例如图像的缩放、转换、滤波等。
  2. 机器学习: NumPy的数值计算功能非常适合用来实现各种机器学习算法。例如,在通过梯度下降法进行模型训练时,可通过NumPy进行大规模矩阵运算。
  3. 数据分析: NumPy提供了大量的数值和统计函数,可用于数据清洗和预处理。比如,你可以使用NumPy进行数据的筛选、排序、聚合等操作。
  4. 科学计算: NumPy还支持广泛的科学计算,例如线性代数运算、傅立叶变换和随机数生成等。
  5. 信号处理: 在信号处理领域,NumPy可以作为数据分析和预处理工具,处理如音频信号数据等。
  6. 在图形库Matplotlib中也会使用到NumPy,包括生成与处理大量数值型数据。

总的来说,只要涉及到大量数据的数值计算和处理,很可能都会需要用到NumPy。

2、NumPy-三方库

NumPy并不是Python的标准库。但它是一个第三方库,是Python进行科学计算的基础包,也是许多Python数据处理和机器学习库的依赖库。

Python的标准库是随着Python安装包直接提供的库,如math(数学函数库),datetime(日期时间库),os(操作系统功能库)等。

NumPy则需要用户在安装Python后另行安装。常见的安装方法是使用pip(Python的包管理工具)进行安装,如在命令行中输入命令“pip install numpy”。

尽管NumPy不是Python的标准库,但它由于其在数值计算等方面的强大功能,以及被众多其他第三方库所依赖,已经成为Python数据科学领域的事实标准库之一。

以下是一些基本的NumPy使用方法:

  • 引入NumPy库,通常我们将其命名为np。
import numpy as np
  • 创建NumPy数组
arr = np.array([1, 2, 3, 4, 5]) # 创建一维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 创建二维数组
  • 使用shape和dtype属性查看数组的形状和数据类型
print(arr.shape)  # 输出:(5,)
print(arr_2d.shape)  # 输出:(3, 3)
print(arr.dtype)  # 输出:int32 或 int64
  • 使用内建函数生成特殊数组
zero_arr = np.zeros((2, 2))  # 生成2x2的全0数组
ones_arr = np.ones((3, 3))   # 生成3x3的全1数组
eye_arr = np.eye(3)  # 生成3x3的单位矩阵
random_arr = np.random.random((4, 4))  # 生成4x4的随机数组
  • 按元素运算
a = np.array([1, 2, 3, 4])
b = np.array([1, 2, 1, 2])
add = a + b  # 输出: array([2, 4, 4, 6])
sub = a - b  # 输出: array([0, 0, 2, 2])
mul = a * b  # 输出: array([1, 4, 3, 8])
div = a / b  # 输出: array([1., 1., 3., 2.])

此外,NumPy还提供了许多其他功能,如切片,索引,广播等等。其强大的功能使得NumPy成为Python科学计算的核心库。

以下是NumPy中切片,索引,广播的示例:

  • 切片(Slicing): 类似Python中列表(list)的切片操作。
arr = np.array([0, 1, 2, 3, 4, 5])
print(arr[1:4])  # 输出:[1 2 3]
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr_2d[:2, 1:3])  # 输出:[[2 3] [5 6]]
  • 索引(Indexing): 可通过索引访问或修改数组中的元素。
arr = np.array([0, 1, 2, 3, 4, 5])
print(arr[2])  # 输出: 2
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr_2d[1, 2])  # 输出: 6

也可以通过布尔索引进行操作:

arr = np.array([0, 1, 2, 3, 4, 5])
print(arr > 2)  # 输出:[False False False  True  True  True]
print(arr[arr > 2])  # 输出:[3 4 5]
  • 广播(Broadcasting): 广播是NumPy处理不同形状数组进行数学运算的方式。例如:
arr = np.array([0, 1, 2, 3, 4, 5])
print(arr[1:4])  # 输出:[1 2 3]
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr_2d[:2, 1:3])  # 输出:[[2 3] [5 6]]

以下是一些常用的NumPy方法:

  1. numpy.array:创建数组,例如np.array([1, 2, 3]),创建一个一维数组。
  2. numpy.arange:类似于Python的range函数,可以按一定的步长生成数值序列,例如np.arange(0, 1, 0.1)生成从0到1(不含1)步长为0.1的数列。
  3. numpy.reshape:将原数组重新塑造为指定形状的新数组。
  4. numpy.random:生成随机数,例如np.random.random((2,2)),生成一个2x2的随机数数组。
  5. numpy.dot:进行点乘运算。
  6. numpy.sum,numpy.min,numpy.max,numpy.mean:数组元素的总和,最小值,最大值,平均值计算。
  7. numpy.sort:对数组进行排序。
  8. numpy.transpose 或数组.T:数组的转置。
  9. numpy.concatenate:将两个或多个数组合并为一个新的数组。
  10. numpy.save / numpy.load:保存和加载数组数据到硬盘。

以上只是NumPy中一小部分方法,NumPy提供了数百种高效实用的数组操作和数值计算函数,具体可以参考NumPy官方文档和教程学习使用。

以下通过一些例子展示NumPy的一些常用方法:

  • 创建一个数组:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)  # 输出:[1 2 3 4 5]
  • 使用arange生成数值序列:
arr = np.arange(0, 5, 1)  # 从0开始,到5结束(不含5),步长为1
print(arr)  # 输出:[0 1 2 3 4]
  • 使用reshape改变数组的形状:
arr = np.arange(10)
print(arr.reshape(2, 5))  # 输出:[[0 1 2 3 4] [5 6 7 8 9]]
  • 使用random生成随机数:
arr = np.random.random((2, 2))
print(arr)
  • 求和,最大值,最小值,平均值:
arr = np.array([1, 2, 3, 4, 5])
print(np.sum(arr))  # 输出:15
print(np.min(arr))  # 输出:1
print(np.max(arr))  # 输出:5
print(np.mean(arr))  # 输出:3.0
  • 数组排序:
arr = np.array([4, 2, 1, 5, 3])
print(np.sort(arr))  # 输出:[1 2 3 4 5]
  • 数组转置:
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.T)  # 输出:[[1 4] [2 5] [3 6]]
  • 合并数组:
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(np.concatenate((arr1, arr2)))  # 输出:[1 2 3 4 5 6]

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值