更新時(shí)間:2022-10-07 來源:黑馬程序員 瀏覽量:
在NumPy中,提供了諸如“sin”、“cos”和“exp”等常見的數(shù)學(xué)函數(shù),這些函數(shù)叫做通用函數(shù)(ufunc)。通用函數(shù)是一種針對ndarray中的數(shù)據(jù)執(zhí)行元素級運(yùn)算的函數(shù),函數(shù)返回的是一個(gè)新的數(shù)組。通常情況下,我們將ufunc中接收一個(gè)數(shù)組參數(shù)的函數(shù)稱為一元通用函數(shù),而接收兩個(gè)數(shù)組參數(shù)的則稱為二元通用函數(shù)。接下來,筆者就列舉一些常見的一元和二元通用函數(shù)。
1.abs、fabs:計(jì)算整數(shù)、浮點(diǎn)數(shù)或復(fù)數(shù)的絕對值。
2.sqrt:計(jì)算各元素的平方根。
3.square:計(jì)算各元素的平方。
4.exp:計(jì)算各元素的指數(shù)ex。
5.log、log10、log2、log1p:分別為自然對數(shù)(底數(shù)為e),底數(shù)為10的log,底數(shù)為2的log,log(1+x)。
6.sign:計(jì)算各元素的正負(fù)號:1(正數(shù))、0(零)、-1(負(fù)數(shù))。
7.ceil:計(jì)算各元素的ceiling值,即大于或者等于該值的最小整數(shù)。
8.floor:計(jì)算各元素的floor值,即小于等于該值的最大整數(shù)。
9.rint:將各元素四舍五入到最接近的整數(shù)。
10.modf:將數(shù)組的小數(shù)和整數(shù)部分以兩個(gè)獨(dú)立數(shù)組的形式返回。
11.isnan:返回一個(gè)表示“哪些值是NaN”的布爾型數(shù)組。
12.isfinite、isinf:分別返回表示“哪些元素是有窮的”或“哪些元素是無窮”的布爾型數(shù)組。
13.sin、sinh、cos、cosh、tan、tanh:普通型和雙曲型三角函數(shù)。
14.arcos、arccosh、arcsin:反三角函數(shù)。
1.add:將數(shù)組中對應(yīng)的元素相加。
2.subtract:從第一個(gè)數(shù)組中減去第二個(gè)數(shù)組中的元素。
3.multiply:數(shù)組元素相乘。
4.divide,flooor_divide:除法或向下整除法(舍去余數(shù))。
5.maximum、fmax:元素級的最大值計(jì)算。
6.minimum、fmin:元素級的最小值計(jì)算。
7.mod:元素級的求模計(jì)算。
8.copysign:將第二個(gè)數(shù)組中的值的符號賦值給第一個(gè)數(shù)組中的值。
9.greater、greater_equal、less、less_equal、equal、not_equal、logical_and、logical_or、logical_xor:執(zhí)行元素級的比較運(yùn)算,最終產(chǎn)生布爾型數(shù)組,相當(dāng)于運(yùn)算符>、≥、<、≤、==、!=。
為了讓讀者更好地理解,接下來,通過一些示例代碼來演示上述部分函數(shù)的用法。有關(guān)一元通用函數(shù)的示例代碼如下。
arr=np.array([4, 9, 16]) # 計(jì)算數(shù)組元素的平方根 np.sqrt(arr) array([2., 3., 4.]) # 計(jì)算數(shù)組元素的絕對值 np.abs(arr) array([4, 9, 16]) # 計(jì)算數(shù)組元素的平方 np.square(arr) array([ 16, 81, 256])
有關(guān)二元通用函數(shù)的示例代碼如下。
x=np.array([12, 9, 13, 15]) y=np.array([11, 10, 4, 8]) # 計(jì)算兩個(gè)數(shù)組的和 np.add(x, y) array([23, 19, 17, 23]) # 計(jì)算兩個(gè)數(shù)組的乘積 np.multiply(x, y) array([132, 90, 52, 120]) # 兩個(gè)數(shù)組元素級最大值的比較 np.maximum(x, y) array([12, 10, 13, 15]) # 執(zhí)行元素級的比較操作 In [97]: np.greater(x, y) Out[97]: array([ True, False, True, True])