Numpy 二元函数

Numpy 二元函数

通用函数中,接受两个标量值、并产生一个或多个标量值的情况,这里称之为二元函数。

常用的二元函数,包括算术运算、比较级运算、求余数等。

1. 常用算术运算

1.1 四则运算

当对两个数组进行四则运算,可以通过运算函数完成,需要注意的是数组必须具有相同的形状或符合数组广播规则。

四则运算具体函数说明如下:

函数说明
add加法运算
subtract减法运算,从第一个数组中减去第二个数组
multiply数组元素相乘
divide除法运算

案例

创建 2 个数组:

arr0 = np.array([,,,,])arr1 = np.array([,,,,])

观察四则运算的调用方法和运算结果。

数组相加:

np.add(arr0, arr1)out:array([, , , , ])

数组相减:

np.subtract(arr0, arr1)out:array([ -, -, -, -, -])

数组相乘:

np.multiply(arr0, arr1)out:array([ ,  ,  , , ])

数组相除:

np.divide(arr0, arr1)out:array([, , , , ])

1.2 求幂运算

numpy.power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。

案例

对 arr0 数组的元素,求三次方:

np.power(arr0, )out:array([  ,   ,  ,  , ], dtype=int32)

当输入的第二个参数是数组类型时,power 函数会对第一个数组中的元素(记为A),根据第二个数组中对应的元素 B,计算 AB

np.power(arr1, arr0)out:array([       ,       ,     ,   , ], dtype=int32)

1.3 求余数

numpy.mod() 函数,是元素级的求余数计算,传参方式跟 power 函数类似。

案例

对 arr0 数组的元素,求 2 的余数:

np.mod(arr0, )out:array([, , , , ], dtype=int32)

类似地,对 arr1 数组中的元素,分别对 arr0 数组的元素,求余数:

np.mod(arr1, arr0)out:array([, , , , ], dtype=int32)

2. 比较运算

2.1 最大最小值计算

函数说明
maximum、fmax元素级的最大值计算,fmax将忽略NaN
minimum、fmin元素级的最小值计算,fmin将忽略NaN

案例

计算 arr0 和 arr1 之间的最大值:

np.maximum(arr0, arr1)out:array([, , , , ])

计算 arr0 和 arr1 之间的最小值:

np.minimum(arr0, arr1)out:array([, , , , ])

需要注意的是,如果数组中间存在空值,需要用 fmax 或 fmin 函数,否则会报 ValueError 的错误。

2.2 比较运算

执行元素级的比较运算,最终产生一个布尔型数组。常用的比较运算有:

函数说明
greater、greater_equal相当于运算符:>、≥
less、less_equal相当于运算符:<、≤
equal、not_equal相当于运算符:==、!=

案例

比较级可以使用在数组与标量之间:

np.greater(arr0, )out:array([False, False, False,  True,  True])

比较级也可以使用在两个数组之间:

np.not_equal(arr0, arr1)out:array([ True,  True,  True,  True,  True])

3. 小结

本节介绍了常用的二元函数,例如:算术运算、比较级运算等。需要注意的是,二元函数不仅仅可以接受两个数组,在广播规则生效的情况下,也可以同时传入数组和标量。