Python疑难杂症(14)---Numpy知识集合(一),介绍Numpy的概念、创建、数组运算等内容,对于该模块有个初步的认识。

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]])

先介绍到这里,如果知识有用,欢迎评论、收藏、点赞等,也欢迎学习的小伙伴交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值