不用编写循环即可对numpy数组执行批量运算,而用数组表达式代替循环的做法,称为numpy的矢量化(vectorization)。
描述
大小相等的数组指shape相等的数组。大小相等的数组之间的任何算术运算都将应用到元素级。即,两个数组对应位置的元素直接进行算术运算。包括,加、减、乘、除、比较大小等。
示例
>>> import numpy as np
# 大小相等的两个数组之间的算术运算
# 应用到对应位置的元素直接进行运算
>>> ar1=np.array([[1,2,3],[4,5,6]])
>>> ar1
array([[1, 2, 3],
[4, 5, 6]])
>>> ar1+ar1
array([[ 2, 4, 6],
[ 8, 10, 12]])
>>> ar1-ar1
array([[0, 0, 0],
[0, 0, 0]])
>>> ar1*ar1
array([[ 1, 4, 9],
[16, 25, 36]])
>>> ar1/ar1
array([[1., 1., 1.],
[1., 1., 1.]])
# 加、减、乘、除
>>> ar2=np.arange(3)
>>> ar2
array([0, 1, 2])
>>> ar3=np.arange(3,6)
>>> ar3
array([3, 4, 5])
>>> ar2+ar3
array([3, 5, 7])
>>> ar2-ar3
array([-3, -3, -3])
>>> ar2*ar3
array([ 0, 4, 10])
>>> ar2/ar3
array([0. , 0.25, 0.4 ])
# 比较大小
>>> ar2>ar3
array([False, False, False])
>>> ar2<ar3
array([ True, True, True])
>>> ar2==ar3
array([False, False, False])
描述
numpy数组与标量的算术运算,会将标量值传播到每个元素。即,数组的每个元素都与标量进行计算。
示例
>>> import numpy as np
# numpy数组的每个元素都与标量进行计算
>>> ar1=np.array([[1,2,3],[4,5,6]])
>>> ar1
array([[1, 2, 3],
[4, 5, 6]])
>>> ar1+1
array([[2, 3, 4],
[5, 6, 7]])
>>> ar1-1
array([[0, 1, 2],
[3, 4, 5]])
>>> ar1*2
array([[ 2, 4, 6],
[ 8, 10, 12]])
>>> ar1/2
array([[0.5, 1. , 1.5],
[2. , 2.5, 3. ]])