通用函數(shù)的目的是提高運(yùn)行速度竹椒,尤其是在進(jìn)行大量循環(huán)的時(shí)候,通用函數(shù)的本質(zhì)是將數(shù)據(jù)進(jìn)行了向量化米辐,而原生的python將數(shù)據(jù)進(jìn)行解析胸完,判斷其類(lèi)型,然后選擇方法進(jìn)行調(diào)用翘贮,所以耗時(shí)較長(zhǎng)赊窥。
用 %timeit 可以得出一個(gè)函數(shù)的運(yùn)行時(shí)間。
numpty的通用函數(shù)也同樣支持原生python的 +狸页,-锨能,,/芍耘,//(向下取整)址遇,%(求余數(shù)),*(指數(shù)運(yùn)算)運(yùn)算符。
numpy中也為這些運(yùn)算符提供了對(duì)應(yīng)的函數(shù):
+斋竞,np.add()倔约,例如:np.add(x,2)
-,np.subtract ()
常用的其他運(yùn)算符對(duì)應(yīng)函數(shù)如圖:
np.absolute()坝初,求絕對(duì)值浸剩,也可用np.abs()代替。
numpy中的三角函數(shù)和逆三角函數(shù)
sin(), arcsin()
cos(), arccos()
tan(), arctan()
指數(shù)運(yùn)算剛才有提到**脖卖,其對(duì)應(yīng)的函數(shù)是
x = [1, 2, 3]
print("x =", x)
print("e^x =", np.exp(x)) # e的x次方用exp()
print("2^x =", np.exp2(x)) # exp2()代表2的x次方
print("3^x =", np.power(3, x)) # 大于2的則用power
指數(shù)運(yùn)算的逆運(yùn)算乒省,即對(duì)數(shù)運(yùn)算也是可用的。最基本的 np.log 給出的是以自然數(shù)為底數(shù)的
對(duì)數(shù)畦木。如果你希望計(jì)算以 2 為底數(shù)或者以 10 為底數(shù)的對(duì)數(shù)袖扛,可以按照如下示例處理:
In[19]: x = [1, 2, 4, 10]
print("x =", x)
print("ln(x) =", np.log(x))
print("log2(x) =", np.log2(x))
print("log10(x) =", np.log10(x))
另外一些高級(jí)的數(shù)學(xué)運(yùn)算函數(shù)在scipy.special中
from scipy import special