首頁技術(shù)文章正文

科學(xué)計(jì)算庫(kù)Numpy:numpy常見函數(shù)的使用方法

更新時(shí)間:2022-10-07 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在NumPy中,提供了諸如“sin”、“cos”和“exp”等常見的數(shù)學(xué)函數(shù),這些函數(shù)叫做通用函數(shù)(ufunc)。通用函數(shù)是一種針對(duì)ndarray中的數(shù)據(jù)執(zhí)行元素級(jí)運(yùn)算的函數(shù),函數(shù)返回的是一個(gè)新的數(shù)組。通常情況下,我們將ufunc中接收一個(gè)數(shù)組參數(shù)的函數(shù)稱為一元通用函數(shù),而接收兩個(gè)數(shù)組參數(shù)的則稱為二元通用函數(shù)。接下來,筆者就列舉一些常見的一元和二元通用函數(shù)。

  一、常見一元通用函數(shù)

  1.abs、fabs:計(jì)算整數(shù)、浮點(diǎn)數(shù)或復(fù)數(shù)的絕對(duì)值。

  2.sqrt:計(jì)算各元素的平方根。

  3.square:計(jì)算各元素的平方。

  4.exp:計(jì)算各元素的指數(shù)ex。

  5.log、log10、log2、log1p:分別為自然對(duì)數(shù)(底數(shù)為e),底數(shù)為10的log,底數(shù)為2的log,log(1+x)。

  6.sign:計(jì)算各元素的正負(fù)號(hào):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ù)。

  二、常見二元通用函數(shù)

  1.add:將數(shù)組中對(duì)應(yīng)的元素相加。

  2.subtract:從第一個(gè)數(shù)組中減去第二個(gè)數(shù)組中的元素。

  3.multiply:數(shù)組元素相乘。

  4.divide,flooor_divide:除法或向下整除法(舍去余數(shù))。

  5.maximum、fmax:元素級(jí)的最大值計(jì)算。

  6.minimum、fmin:元素級(jí)的最小值計(jì)算。

  7.mod:元素級(jí)的求模計(jì)算。

  8.copysign:將第二個(gè)數(shù)組中的值的符號(hào)賦值給第一個(gè)數(shù)組中的值。

  9.greater、greater_equal、less、less_equal、equal、not_equal、logical_and、logical_or、logical_xor:執(zhí)行元素級(jí)的比較運(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ù)組元素的絕對(duì)值
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ù)組元素級(jí)最大值的比較
np.maximum(x, y)
array([12, 10, 13, 15])
# 執(zhí)行元素級(jí)的比較操作
In [97]: np.greater(x, y)
Out[97]: array([ True, False,  True,  True])


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!