数组运算
数组运算与算数运算包含的内容相似,一般包括数组的加法、减法、乘法和除法,接下来详细讲解数组中的运算,具体示例如下所示:
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
(不是一个有效数)。从上述运行结果中可以看出数组的加减乘除法运算都是对应位置的数进行加减乘除,因此要求相互运算的数组含有相同的行和列。
网友评论