亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

Numpy 二元函數

通用函數中,接受兩個標量值、并產生一個或多個標量值的情況,這里稱之為二元函數。

常用的二元函數,包括算術運算、比較級運算、求余數等。

1. 常用算術運算

1.1 四則運算

當對兩個數組進行四則運算,可以通過運算函數完成,需要注意的是數組必須具有相同的形狀或符合數組廣播規則。

四則運算具體函數說明如下:

函數 說明
add 加法運算
subtract 減法運算,從第一個數組中減去第二個數組
multiply 數組元素相乘
divide 除法運算

案例

創建 2 個數組:

arr0 = np.array([1,2,3,4,5])
arr1 = np.array([10,20,30,40,50])

觀察四則運算的調用方法和運算結果。

數組相加:

np.add(arr0, arr1)
out:
    array([11, 22, 33, 44, 55])

數組相減:

np.subtract(arr0, arr1)
out:
    array([ -9, -18, -27, -36, -45])

數組相乘:

np.multiply(arr0, arr1)
out:
    array([ 10,  40,  90, 160, 250])

數組相除:

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

1.2 求冪運算

numpy.power() 函數將第一個輸入數組中的元素作為底數,計算它與第二個輸入數組中相應元素的冪。

案例

對 arr0 數組的元素,求三次方:

np.power(arr0, 3)
out:
    array([  1,   8,  27,  64, 125], dtype=int32)

當輸入的第二個參數是數組類型時,power 函數會對第一個數組中的元素(記為A),根據第二個數組中對應的元素 B,計算 AB

np.power(arr1, arr0)
out:
    array([       10,       400,     27000,   2560000, 312500000], dtype=int32)

1.3 求余數

numpy.mod() 函數,是元素級的求余數計算,傳參方式跟 power 函數類似。

案例

對 arr0 數組的元素,求 2 的余數:

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

類似地,對 arr1 數組中的元素,分別對 arr0 數組的元素,求余數:

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

2. 比較運算

2.1 最大最小值計算

函數 說明
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])

需要注意的是,如果數組中間存在空值,需要用 fmax 或 fmin 函數,否則會報 ValueError 的錯誤。

2.2 比較運算

執行元素級的比較運算,最終產生一個布爾型數組。常用的比較運算有:

函數 說明
greater、greater_equal 相當于運算符:>、≥
less、less_equal 相當于運算符:<、≤
equal、not_equal 相當于運算符:==、!=

案例

比較級可以使用在數組與標量之間:

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

比較級也可以使用在兩個數組之間:

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

3. 小結

本節介紹了常用的二元函數,例如:算術運算、比較級運算等。需要注意的是,二元函數不僅僅可以接受兩個數組,在廣播規則生效的情況下,也可以同時傳入數組和標量。