python的模块numpy(一)
NumPy模块是Python语言用于科学计算、机器学习、数据分析的核心程序包之一,提供了强大的数组对象和数学函数,它简化了向量和矩阵的操作处理,而。Python 的一些主要模块软件包象 scikit-learn、SciPy、pandas 和 tensorflow都以 NumPy 作为基础运算和架构部分。
数值计算:NumPy提供了高效的多维数组对象和一组用于操作这些数组的函数,使得进行数值计算变得更加高效和方便。它支持向量化操作和广播功能,可以在大规模数据集上进行快速数值计算,例如线性代数运算、傅里叶变换、随机数生成等。
NumPy主要的用途如下:
科学计算:NumPy是许多科学计算库的基础,它提供了高性能的数组操作和数学函数,使得科学计算任务更加简洁和高效。许多科学领域,如物理学、化学、生物学等,都可以使用NumPy进行数据处理和计算。
图像处理:NumPy可以用于图像处理任务,因为图像可以表示为多维数组。NumPy提供了各种功能,如图像的读取、保存和处理,包括图像的缩放、裁剪、旋转、滤波等操作。
机器学习:NumPy在机器学习领域也有广泛的应用。它作为Python中的数值计算库,为机器学习算法提供了高效的数据结构和操作。例如,可以使用NumPy数组存储和处理训练数据集、特征工程和模型评估等。
数值模拟和科学计算:NumPy提供了高效的数据结构和运算功能,用于数值模拟和科学计算。许多科学和工程领域使用NumPy来解决物理、化学、工程等领域的数值计算问题。
数组操作和索引:NumPy提供了广泛的数组操作和索引功能,可以对数组进行切片、索引、连接、重塑等操作。这使得在处理大规模数据集时更加高效和灵活。
模块导入:
Numpy是一个外置模块包,在使用前必须提前装入
import numpy as np
而numpy使用的基础是其建立了一个新的数据类型numpy类型,称为数组,其和list类表数据类型类似,但是和list有着本质的区别。
1、使用Array创建一维或者多维
numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)
Dtype:生成数组所需的数据类型。
ndim:指定生成数组的最小维度数。
例如:一维
import numpy as np
arr1=np.array([1,2,3,4,5])
print(type(arr1))
arr1
输出:
<class 'numpy.ndarray'>
array([1, 2, 3, 4, 5])
多维:
np.array([[1,2],[3,4]])
输出:array([[1, 2],
[3, 4]])
2、生成具有初始值的数组ones()、zeros() 和 random.random() 等方法
numpy.zeros(shape, dtype=float, order='C', *, like=None)
shape:阵列的形状。
Dtype:生成数组所需的数据类型。' int '或默认' float '
例如:
ar1=np.ones((3,2), dtype=int)
print(ar1)
ar2=np.zeros((4,3,2),dtype=float)
print(ar2)
ar3=np.random.random(4)
print(ar3)
输出:[[1 1]
[1 1]
[1 1]]
[[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]]
[0.73037958 0.03280601 0.02007473 0.81910797]
3、数组运算
NumPy.array创建的数据这种类型,在计算时,可以简单的通过数组和数组(维数相同)、数组和常数之间直接运算(主要包括+、-、*、\)得到结果数据,就像单个数值运算那样简单,这个运算是算术运算,有别于矩阵运算。多维数组和一维数据运算,运算使用广播机制完成。
例如上面的三个数据,具体输出见前面内容
ar1=np.ones((3,2), dtype=int)
print(ar1)
ar2=np.zeros((4,3,2),dtype=float)
print(ar2)
ar3=np.random.random(4)
print(ar3)
进行运算结果如下:
ar1+ar2
输出:array([[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]]])
ar1+ar3
输出:ValueError Traceback (most recent call last)
<ipython-input-17-39c72b2b72e0> in <module>
----> 1 ar1+ar3
ValueError: operands could not be broadcast together with shapes (3,2) (4,)
此处报错,因为没有相同的维数。
和常数进行运算:
ar4=np.ones((3,2), dtype=int)
ar4
输出:array([[1, 1],
[1, 1],
[1, 1]])
ar4+6
输出:array([[7, 7],
[7, 7],
[7, 7]])
先介绍到这里,如果知识有用,欢迎评论、收藏、点赞等,也欢迎学习的小伙伴交流。