numpy 常用的ndarray多维数组运算

欢迎关注WX公众号:【程序员管小亮】

NumPy一元函数对ndarray中的数据执行元素级运算的函数

  • np.abs(x)np.fabs(x) : 计算数组各元素的绝对值
>>> x = np.array([-1.2, 1.2])
>>> np.absolute(x)
array([ 1.2,  1.2])

>>> np.fabs(x)
array([ 1.2,  1.2])
  • np.sqrt(x) : 计算数组各元素的平方根
>>> x = np.array([-1.2, 1.2])
>>> np.sqrt(x)
array([ nan 1.09544512])
  • np.square(x) : 计算数组各元素的平方
>>> x = np.array([-1.2, 1.2])
>>> np.square(x)
array([1.44 1.44])
  • np.log(x)np.log10(x)np.log2(x) : 计算数组各元素的自然对数、10底对数和2底对数
>>> np.log([1, np.e, np.e**2, 0])
array([  0.,   1.,   2., -Inf])

>>> np.log10([1, np.e, np.e**2, 0])
array([0. 0.43429448 0.86858896 -inf])

>>> np.log2([1, np.e, np.e**2, 0])
array([0. 1.44269504 2.88539008 -inf])
  • np.ceil(x)np.floor(x) : 计算数组各元素的ceiling值或floor值(ceiling向上取整,floor向下取整)
>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
>>> np.ceil(a)
array([-1., -1., -0.,  1.,  2.,  2.,  2.])

>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
>>> np.floor(a)
array([-2., -2., -1.,  0.,  1.,  1.,  2.])
  • np.rint(x) : 计算数组各元素的四舍五入值
>>> a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
>>> np.rint(a)
array([-2., -2., -0.,  0.,  2.,  2.,  2.])
  • np.modf(x) : 将数组各元素的小数和整数部分以两个独立数组形式返回
>>> np.modf([0, 3.5])
(array([ 0. ,  0.5]), array([ 0.,  3.]))
>>> np.modf(-0.5)
(-0.5, -0)
  • np.cos(x)np.cosh(x)np.sin(x)np.sinh(x)np.tan(x)np.tanh(x) : 计算数组各元素的普通型和双曲型三角函数
>>> np.cos(np.array([0, np.pi/2, np.pi]))
array([  1.00000000e+00,   6.12303177e-17,  -1.00000000e+00])

>>> np.cosh(np.array([0, np.pi/2, np.pi]))
array([  1.        ,   2.50917848,  11.59195328])

>>> np.sin(np.array([0, np.pi/2, np.pi]))
array([  0.00000000e+00,   1.00000000e+00,   1.22464680e-16])

>>> np.sinh(np.array([0, np.pi/2, np.pi]))
array([  0.        ,   2.3012989 ,  11.54873936])

>>> np.tan(np.array([0, np.pi/2, np.pi]))
array([  0.00000000e+00,   1.63312394e+16,  -1.22464680e-16])

>>> np.tanh(np.array([0, np.pi/2, np.pi]))
array([ 0.        ,  0.91715234,  0.99627208])
  • np.exp(x) : 计算数组各元素的指数值
>>> np.expm1(1e-10)
1.00000000005e-10
  • np.sign(x) : 计算数组各元素的符号值,+1(+), 0, ‐1(‐)
>>> np.sign([-5., 4.5])
array([-1.,  1.])
>>> np.sign(0)
0
>>> np.sign(5-2j)
(1+0j)

NumPy二元函数对ndarray中的数据执行元素级运算的函数

  • +、 ‐、 * 、/ 、** : 两个数组各元素进行对应运算
  • np.maximum(x,y)np.fmax()np.minimum(x,y)np.fmin() :元素级的最大值/最小值计算
>>> x = np.array([[0, 1, 2, 3],
              [4, 5, 6, 7],
              [8, 9, 10, 11]])
>>> y = np.array([[2, 2, 2, 2],
              [2, 2, 2, 2],
              [2, 2, 2, 2]])
>>> np.maximum(x,y)
array([[ 2,  2,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

>>> np.fmax(x,y)
array([[ 2,  2,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

>>> np.minimum(x,y)
array([[0, 1, 2, 2],
       [2, 2, 2, 2],
       [2, 2, 2, 2]])>>> np.fmin(x,y)
array([[0, 1, 2, 2],
       [2, 2, 2, 2],
       [2, 2, 2, 2]])
  • np.mod(x,y) :元素级的模运算
>>> np.remainder([4, 7], [2, 3])
array([0, 1])
>>> np.remainder(np.arange(7), 5)
array([0, 1, 2, 3, 4, 0, 1])
  • np.copysign(x,y) : 将数组y中各元素值的符号赋值给数组x对应元素
>>> x = np.array([[0, 1, 2, 3],
              [4, 5, 6, 7],
              [8, 9, 10, 11]])
>>> y = np.array([[2, 2, 2, 2],
              [2, 2, 2, 2],
              [2, 2, 2, 2]])
>>> np.copysign(x,y)
array([[ -0.,   1.,  -2.,   3.],
       [  4.,  -5.,   6.,  -7.],
       [ -8.,   9., -10.,  11.]])
  • > < >= <= == != 算术比较,产生布尔型数组

python课程推荐。
在这里插入图片描述

原文地址:https://www.cnblogs.com/hzcya1995/p/13302763.html