Numpy

NumPy基础之数组的运算

2018-08-31  本文已影响82人  5f2a6061653d

数组运算

数组运算与算数运算包含的内容相似,一般包括数组的加法、减法、乘法和除法,接下来详细讲解数组中的运算,具体示例如下所示:

In [89]: import numpy as np
In [90]: a = np.random.randint(10,size = 20).reshape(4,5)
In [91]: b = np.random.randint(10,size = 20).reshape(4,5)
In [92]: c = a + b
In [93]: d = a - b
In [94]: e = a * b
In [95]: f = a / b

上述代码是两数组的加法、减法、乘法以及除法运算,其中In [90]是创建一个由20个10以内随机整型数构成的4行5列的数组并赋值给变量a;In [91]与In [90]相同,并将创建的数组赋值给变量b;In [92]是将数组a和数组b的加法运算结果赋值给变量c;In [93]是将数组a和数组b的减法运算结果赋值给变量d;In [94]是将数组a和数组b的乘法运算结果赋值给变量e;In [95]是将数组a和数组b的除法运算结果赋值给变量f,当除数中有值为0时,会出现报错,但最终还是可以运行,只是结果会有些许差别,具体报错如下所示:

In [96]: f = a / b
D:\software\Anaconda\Scripts\ipython:
1:RuntimeWarning:divide by zero encountered in true_divide

上述示例中a,b的运行结果如下所示:

In [97]: a
Out[97]:
array([[6, 3, 1, 7, 8],
       [0, 2, 2, 3, 5],
       [7, 5, 2, 9, 8],
       [0, 8, 0, 4, 7]])
In [98]: b
Out[98]:
array([[1, 1, 6, 3, 0],
       [6, 7, 5, 4, 3],
       [1, 8, 4, 0, 9],
       [2, 7, 6, 8, 4]])

上述示例中c,d,e,f的运行结果如下所示:

In [99]: c
Out[99]:
array([[ 7,  4,  7, 10,  8],
       [ 6,  9,  7,  7,  8],
       [ 8, 13,  6,  9, 17],
       [ 2, 15,  6, 12, 11]])
In [100]: d
Out[100]:
array([[ 5,  2, -5,  4,  8],
       [-6, -5, -3, -1,  2],
       [ 6, -3, -2,  9, -1],
       [-2,  1, -6, -4,  3]])
In [101]: e
Out[101]:
array([[ 6,  3,  6, 21,  0],
       [ 0, 14, 10, 12, 15],
       [ 7, 40,  8,  0, 72],
       [ 0, 56,  0, 32, 28]])
In [102]: f
Out[102]:
array([[6.        , 3.        , 0.16666667, 2.33333333,        inf],
       [0.        , 0.28571429, 0.4       , 0.75      , 1.66666667],
       [7.        , 0.625     , 0.5       ,        inf, 0.88888889],
       [0.        , 1.14285714, 0.        , 0.5       , 1.75      ]])

上述运行结果中f的运行结果中出现了inf字样,还有可能出现nan字样,二者都是由于除数为0而导致的结果,其中inf是表示无穷大,nan表示是Not a Number(不是一个有效数)。从上述运行结果中可以看出数组的加减乘除法运算都是对应位置的数进行加减乘除,因此要求相互运算的数组含有相同的行和列。

上一篇 下一篇

猜你喜欢

热点阅读