当前位置:   article > 正文

【入门】Python之numpy模块的数组运算_numpy 数组 算术计算

numpy 数组 算术计算


可恶啊,numpy里面也有内置的一些数组运算函数,做些常用的整理好了。

使用前需要导入numpy模块

import numpy as np
  • 1

1 数组操作

1.1 np.reshape()

numpy.reshape(arr, newshape, order='C')
  • 1

描述: 该函数用来在不改变数据的条件下修改数组的形状

1.2 np.transpose()

numpy.transpose(arr, axes)
  • 1

描述: 对于二维数组来讲,可以当做转置矩阵使用。np.adarray.T类似于np.transpose()

1.3 np.expand_dims

 numpy.expand_dims(arr, axis)
  • 1

参数说明:

  • arr: 输入参数
  • axis: 新轴插入的位置

axis: 关于这个axis一直困扰我很久,axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作。
什么是维度(dimension)呢?
‘ndarray’的
维度(dimension)
表示数组的 轴(axis) 的数量。(具体怎么使用还是要自行体会,经常会用这个函数整理数组形状以便能相互运算)

2 数学函数

2.1 三角函数

注意输入的ndarray对象,返回的也是ndarray对象

函数描述
np.sin(x)return 数组中角度的正弦值
np.arcsin(x)return 数组中角度的反正弦值
np.cos(x)return 数组中角度的余弦值
np.arccos(x)return 数组中角度的反余弦值
np.tan(x)return 数组中角度的正切值
np.arctan(x)return 数组中角度的反正切值
numpy.degrees()return 数组中弧度制对应的角度值

ATTENTION 以上sin(),cos(),tan()函数,输入的是弧度值。如果数组x里面全是角度值,需要执行 x*np.pi/180,将其转换为弧度值。

2.2 舍入函数

2.2.1 np.around

numpy.around(a,decimals)
  • 1

参数说明:

  • decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置

描述: 返回指定数字的四舍五入值

2.2.2 np.floor

描述: 返回小于或者等于指定表达式的最大整数,即向下取整。

2.2.3 np.ceil

描述: 返回大于或者等于指定表达式的最小整数,即向上取整。

2.3 算术函数

[ATTENTION] 数组必须具有后相同的形状或符合数组广播规则

什么是Numpy广播(Broadcast)

  • 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制。

广播的规则简单理解

  • 数组拥有相同形状。
  • 当前维度的值相等。
  • 当前维度的值有一个是 1。
    若条件不满足,抛出 “ValueError: frames are not aligned” 异常。

输入 ndarray对象 输出 ndarry对象

函数描述
np.add(a, b)
np.subtract(a, b)
np.mutiply(a, b)
np.divide(a, b)
np.power(a, b)将a中的元素作为底数,计算a与b中相应元素的幂
np.mod(a,b)计算输入数组中相应元素的相除后的余数

2.4 统计函数

函数描述
np.amin()计算数组中的元素沿指定轴的最小值
np.amax()计算数组中的元素沿指定轴的最大值
np.ptp()计算数组中元素沿指定轴最大值与最小值的差(最大值 - 最小值)
np.mean()计算数组中元素沿指定轴的算术平均值
np.average()计算数组中元素沿指定轴的平均值,可以指定权重数组计算加权平均值
np.std()计算标准差
np.var()计算方差

2.5 排序、条件筛选函数

2.5.1 np.sort()

numpy.sort(a, axis, kind, order)
  • 1

描述: numpy提供了多种排序的方法

参数说明:

  • kind: default = “quicksort”(快速排序),此外还有"mergesort"归并排序以及"heapsort"堆排序。

2.5.2 numpy.argsort()

**描述:**返回的是数组值从小到大的索引值

2.5.3 numpy.argmax() 和 numpy.argmin()

描述: 分别沿给定轴返回最大和最小元素的索引。

2.5.4 numpy.nonzero()

描述: 返回输入数组中非零元素的索引。

2.5.5 numpy.where()

描述: 返回输入数组中满足给定条件的元素的索引。

3 矩阵库

Numpy中包含了一个矩阵库numpy.matlib,该模块中的函数返回的是一个矩阵,而不是ndarray对象。
使用前需要导入

import numpy.matlib
  • 1

3.1 转置矩阵 a.T

描述: 其作用同np.transpose(a)相同。

3.2 matlib.empty()

numpy.matlib.empty(shape, dtype, order)
  • 1

描述: 返回一个新的矩阵

4 线性代数

NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能。

4.1 np.dot()

umpy.dot(a, b, out=None)
  • 1

描述:
该函数对于两个一维数组,计算的是这两个数组独赢下标元素的乘积和(数学上称之为向量点积);
对于二维数组,计算的是两个数组的矩阵乘积;
对于多维数组,数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和。

4.2 np.vdot()

描述: 该函数是两个向量的点积。
如果第一个参数是负数,那么它的共轭复数会用于计算。
如果参数是多维数组,会被展开。

4.3 np.inner()

描述: 返回一维数组的向量内机。对于更高维度,返回最后一个轴上的乘积。

4.4 np.matmul()

描述: 返回两个数组的矩阵乘积。
如果任一参数的维数大于2,则将其视为存在于最后两个索引的矩阵的栈,并进行相应广播。另一方面,如果任一参数是一维数组,则通过在其维度上附加 1 来将其提升为矩阵,并在乘法之后被去除。

4.5 np.linalg.det()

描述: 计算输入矩阵的行列式。

4.6 np.linalg.inv()

描述: 返回计算矩阵的乘法逆矩阵

参考资料

[1]https://www.runoob.com/numpy/numpy-tutorial.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/620007
推荐阅读
相关标签
  

闽ICP备14008679号