Numpy 二元函數(shù)
通用函數(shù)中,接受兩個標量值、并產(chǎn)生一個或多個標量值的情況,這里稱之為二元函數(shù)。
常用的二元函數(shù),包括算術(shù)運算、比較級運算、求余數(shù)等。
1. 常用算術(shù)運算
1.1 四則運算
當對兩個數(shù)組進行四則運算,可以通過運算函數(shù)完成,需要注意的是數(shù)組必須具有相同的形狀或符合數(shù)組廣播規(guī)則。
四則運算具體函數(shù)說明如下:
函數(shù) | 說明 |
---|---|
add | 加法運算 |
subtract | 減法運算,從第一個數(shù)組中減去第二個數(shù)組 |
multiply | 數(shù)組元素相乘 |
divide | 除法運算 |
案例
創(chuàng)建 2 個數(shù)組:
arr0 = np.array([1,2,3,4,5])
arr1 = np.array([10,20,30,40,50])
觀察四則運算的調(diào)用方法和運算結(jié)果。
數(shù)組相加:
np.add(arr0, arr1)
out:
array([11, 22, 33, 44, 55])
數(shù)組相減:
np.subtract(arr0, arr1)
out:
array([ -9, -18, -27, -36, -45])
數(shù)組相乘:
np.multiply(arr0, arr1)
out:
array([ 10, 40, 90, 160, 250])
數(shù)組相除:
np.divide(arr0, arr1)
out:
array([0.1, 0.1, 0.1, 0.1, 0.1])
1.2 求冪運算
numpy.power() 函數(shù)將第一個輸入數(shù)組中的元素作為底數(shù),計算它與第二個輸入數(shù)組中相應(yīng)元素的冪。
案例
對 arr0 數(shù)組的元素,求三次方:
np.power(arr0, 3)
out:
array([ 1, 8, 27, 64, 125], dtype=int32)
當輸入的第二個參數(shù)是數(shù)組類型時,power 函數(shù)會對第一個數(shù)組中的元素(記為A),根據(jù)第二個數(shù)組中對應(yīng)的元素 B,計算 AB:
np.power(arr1, arr0)
out:
array([ 10, 400, 27000, 2560000, 312500000], dtype=int32)
1.3 求余數(shù)
numpy.mod() 函數(shù),是元素級的求余數(shù)計算,傳參方式跟 power 函數(shù)類似。
案例
對 arr0 數(shù)組的元素,求 2 的余數(shù):
np.mod(arr0, 2)
out:
array([1, 0, 1, 0, 1], dtype=int32)
類似地,對 arr1 數(shù)組中的元素,分別對 arr0 數(shù)組的元素,求余數(shù):
np.mod(arr1, arr0)
out:
array([0, 0, 0, 0, 0], dtype=int32)
2. 比較運算
2.1 最大最小值計算
函數(shù) | 說明 |
---|---|
maximum、fmax | 元素級的最大值計算,fmax將忽略NaN |
minimum、fmin | 元素級的最小值計算,fmin將忽略NaN |
案例
計算 arr0 和 arr1 之間的最大值:
np.maximum(arr0, arr1)
out:
array([10, 20, 30, 40, 50])
計算 arr0 和 arr1 之間的最小值:
np.minimum(arr0, arr1)
out:
array([1, 2, 3, 4, 5])
需要注意的是,如果數(shù)組中間存在空值,需要用 fmax 或 fmin 函數(shù),否則會報 ValueError 的錯誤。
2.2 比較運算
執(zhí)行元素級的比較運算,最終產(chǎn)生一個布爾型數(shù)組。常用的比較運算有:
函數(shù) | 說明 |
---|---|
greater、greater_equal | 相當于運算符:>、≥ |
less、less_equal | 相當于運算符:<、≤ |
equal、not_equal | 相當于運算符:==、!= |
案例
比較級可以使用在數(shù)組與標量之間:
np.greater(arr0, 3)
out:
array([False, False, False, True, True])
比較級也可以使用在兩個數(shù)組之間:
np.not_equal(arr0, arr1)
out:
array([ True, True, True, True, True])
3. 小結(jié)
本節(jié)介紹了常用的二元函數(shù),例如:算術(shù)運算、比較級運算等。需要注意的是,二元函數(shù)不僅僅可以接受兩個數(shù)組,在廣播規(guī)則生效的情況下,也可以同時傳入數(shù)組和標量。