NumPy库学习笔记(5) 数组的标量运算、一元函数和二元函数

参考链接: NumPy官网

参考链接: NumPy: the absolute basics for beginners

参考链接: Quickstart tutorial

参考链接: Broadcasting广播

参考链接: NumPy 中文教程

参考链接: Python数据分析与展示

数组与标量之间的运算作用于数组的每一个元素
实验如下:

>>> 
>>> a = np.arange(24).reshape((2,3,4))
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
>>> a.mean()
11.5
>>> a = a / a.mean()
>>> a
array([[[0.        , 0.08695652, 0.17391304, 0.26086957],
        [0.34782609, 0.43478261, 0.52173913, 0.60869565],
        [0.69565217, 0.7826087 , 0.86956522, 0.95652174]],

       [[1.04347826, 1.13043478, 1.2173913 , 1.30434783],
        [1.39130435, 1.47826087, 1.56521739, 1.65217391],
        [1.73913043, 1.82608696, 1.91304348, 2.        ]]])
>>> 
>>> 

NumPy一元函数

函数说明
np.abs(x) np.fabs(x)计算数组各元素的绝对值
np.sqrt(x)计算数组各元素的平方根
np.square(x)计算数组各元素的平方
np.log(x)、np.log10(x)、np.log2(x)计算数组各元素的自然对数、10底对数和2底对数
np.ceil(x)、np.floor(x)计算数组各元素的ceiling值或floor值
np.rint(x)计算数组各元素的四舍五入值
np.modf(x)将数组各元素的小数和整数部分以两个独立数组形式返回
np.cos(x)、np.cosh(x)、np.sin(x)、np.sinh(x)、np.tan(x)、np.tanh(x)计算数组各元素的普通型和双曲型三角函数
np.exp(x)计算数组各元素的指数值
np.sign(x)计算数组各元素的符号值,1(+), 0, ‐1(‐)

对ndarray中的数据执行元素级运算的函数,实验如下:

>>> 
>>> 
>>> a = np.arange(24).reshape((2,3,4))
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
>>> np.square(a)
array([[[  0,   1,   4,   9],
        [ 16,  25,  36,  49],
        [ 64,  81, 100, 121]],

       [[144, 169, 196, 225],
        [256, 289, 324, 361],
        [400, 441, 484, 529]]], dtype=int32)
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
>>> a = np.aqrt(a)
Traceback (most recent call last):
  File "<pyshell#65>", line 1, in <module>
    a = np.aqrt(a)
  File "D:\Python\Python37\lib\site-packages\numpy\__init__.py", line 220, in __getattr__
    "{!r}".format(__name__, attr))
AttributeError: module 'numpy' has no attribute 'aqrt'
>>> a = np.sqrt(a)
>>> a
array([[[0.        , 1.        , 1.41421356, 1.73205081],
        [2.        , 2.23606798, 2.44948974, 2.64575131],
        [2.82842712, 3.        , 3.16227766, 3.31662479]],

       [[3.46410162, 3.60555128, 3.74165739, 3.87298335],
        [4.        , 4.12310563, 4.24264069, 4.35889894],
        [4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
>>> np.modf(a)
(array([[[0.        , 0.        , 0.41421356, 0.73205081],
        [0.        , 0.23606798, 0.44948974, 0.64575131],
        [0.82842712, 0.        , 0.16227766, 0.31662479]],

       [[0.46410162, 0.60555128, 0.74165739, 0.87298335],
        [0.        , 0.12310563, 0.24264069, 0.35889894],
        [0.47213595, 0.58257569, 0.69041576, 0.79583152]]]), array([[[0., 1., 1., 1.],
        [2., 2., 2., 2.],
        [2., 3., 3., 3.]],

       [[3., 3., 3., 3.],
        [4., 4., 4., 4.],
        [4., 4., 4., 4.]]]))
>>> x,y = np.modf(a)
>>> x
array([[[0.        , 0.        , 0.41421356, 0.73205081],
        [0.        , 0.23606798, 0.44948974, 0.64575131],
        [0.82842712, 0.        , 0.16227766, 0.31662479]],

       [[0.46410162, 0.60555128, 0.74165739, 0.87298335],
        [0.        , 0.12310563, 0.24264069, 0.35889894],
        [0.47213595, 0.58257569, 0.69041576, 0.79583152]]])
>>> y
array([[[0., 1., 1., 1.],
        [2., 2., 2., 2.],
        [2., 3., 3., 3.]],

       [[3., 3., 3., 3.],
        [4., 4., 4., 4.],
        [4., 4., 4., 4.]]])
>>> a
array([[[0.        , 1.        , 1.41421356, 1.73205081],
        [2.        , 2.23606798, 2.44948974, 2.64575131],
        [2.82842712, 3.        , 3.16227766, 3.31662479]],

       [[3.46410162, 3.60555128, 3.74165739, 3.87298335],
        [4.        , 4.12310563, 4.24264069, 4.35889894],
        [4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
>>> np.rint(a)
array([[[0., 1., 1., 2.],
        [2., 2., 2., 3.],
        [3., 3., 3., 3.]],

       [[3., 4., 4., 4.],
        [4., 4., 4., 4.],
        [4., 5., 5., 5.]]])
>>> np.cos(a)
array([[[ 1.        ,  0.54030231,  0.15594369, -0.16055654],
        [-0.41614684, -0.61727288, -0.76990573, -0.87956873],
        [-0.95136313, -0.9899925 , -0.99978607, -0.98472094]],

       [[-0.9484432 , -0.89428806, -0.82529906, -0.74424627],
        [-0.65364362, -0.55576539, -0.45266186, -0.34617416],
        [-0.23794839, -0.129449  , -0.02197145,  0.08334575]]])
>>> np.cosh(a)
array([[[ 1.        ,  1.54308063,  2.17818356,  2.91457744],
        [ 3.76219569,  4.73167347,  5.83438641,  7.08249107],
        [ 8.48896721, 10.067662  , 11.83333607, 13.80171176]],

       [[15.98952331, 18.41456937, 21.09576772, 24.05321231],
        [27.30823284, 30.88345677, 34.80287403, 39.09190439],
        [43.77746767, 48.8880569 , 54.45381443, 60.50661126]]])
>>> np.exp(a)
array([[[  1.        ,   2.71828183,   4.11325038,   5.65223367],
        [  7.3890561 ,   9.35646902,  11.58243519,  14.09403011],
        [ 16.91882868,  20.08553692,  23.62434292,  27.56714845]],

       [[ 31.94774551,  36.80196629,  42.16782067,  48.08562838],
        [ 54.59815003,  61.7507194 ,  69.59137847,  78.17101632],
        [ 87.54351246,  97.76588528, 108.898446  , 121.00495841]]])
>>> a
array([[[0.        , 1.        , 1.41421356, 1.73205081],
        [2.        , 2.23606798, 2.44948974, 2.64575131],
        [2.82842712, 3.        , 3.16227766, 3.31662479]],

       [[3.46410162, 3.60555128, 3.74165739, 3.87298335],
        [4.        , 4.12310563, 4.24264069, 4.35889894],
        [4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
>>> np.sign(a)
array([[[0., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]],

       [[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]]])
>>> a[-1,-1,-1] = -33
>>> a
array([[[  0.        ,   1.        ,   1.41421356,   1.73205081],
        [  2.        ,   2.23606798,   2.44948974,   2.64575131],
        [  2.82842712,   3.        ,   3.16227766,   3.31662479]],

       [[  3.46410162,   3.60555128,   3.74165739,   3.87298335],
        [  4.        ,   4.12310563,   4.24264069,   4.35889894],
        [  4.47213595,   4.58257569,   4.69041576, -33.        ]]])
>>> np.sign(a)
array([[[ 0.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.]],

       [[ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1.,  1.],
        [ 1.,  1.,  1., -1.]]])
>>> 

NumPy二元函数

函数说明
+ ‐ * / **两个数组各元素进行对应运算
np.maximum(x,y)、np.fmax()、np.minimum(x,y)、np.fmin()元素级的最大值/最小值计算
np.mod(x,y)元素级的模运算
np.copysign(x,y)将数组y中各元素值的符号赋值给数组x对应元素
> < >= <= == !=算术比较,产生布尔型数组

实验如下:

>>> 
>>> a = np.arange(24).reshape((2,3,4))
>>> b = np.sqrt(a)
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
>>> b
array([[[0.        , 1.        , 1.41421356, 1.73205081],
        [2.        , 2.23606798, 2.44948974, 2.64575131],
        [2.82842712, 3.        , 3.16227766, 3.31662479]],

       [[3.46410162, 3.60555128, 3.74165739, 3.87298335],
        [4.        , 4.12310563, 4.24264069, 4.35889894],
        [4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
>>> np.maximum(a,b)
array([[[ 0.,  1.,  2.,  3.],
        [ 4.,  5.,  6.,  7.],
        [ 8.,  9., 10., 11.]],

       [[12., 13., 14., 15.],
        [16., 17., 18., 19.],
        [20., 21., 22., 23.]]])
>>> a > b
array([[[False, False,  True,  True],
        [ True,  True,  True,  True],
        [ True,  True,  True,  True]],

       [[ True,  True,  True,  True],
        [ True,  True,  True,  True],
        [ True,  True,  True,  True]]])
>>> 
>>> 
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值