本篇內(nèi)容主要講解“Numpy常用的函數(shù)有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Numpy常用的函數(shù)有哪些”吧!
在忻府等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、做網(wǎng)站 網(wǎng)站設(shè)計制作按需策劃設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),忻府網(wǎng)站建設(shè)費用合理。
首先Numpy 可以進(jìn)行加減乘除運算的前提是:Shape相同,或者滿足廣播規(guī)則
numpy 進(jìn)行加減乘除時,可以使用運算符號,即:+,-,*,/
,也可以使用對應(yīng)的函數(shù): add()
,subtract()
,multiply()
和 divide()
;比較簡單明了,舉例如下:
a = np.arange(12).reshape(3,4) b = np.array([1,2,3,4]) print(a+b) print (np.add(a,b)) # [[ 1 3 5 7] # [ 5 7 9 11] # [ 9 11 13 15]] print(a-b) print (np.subtract(a,b)) # [[-1 -1 -1 -1] # [ 3 3 3 3] # [ 7 7 7 7]] print(a*b) print (np.multiply(a,b)) # [[ 0 2 6 12] # [ 4 10 18 28] # [ 8 18 30 44]] print(a/b) print (np.divide(a,b)) # [[0. 0.5 0.66666667 0.75 ] # [4. 2.5 2. 1.75 ] # [8. 4.5 3.33333333 2.75 ]]
sin()
、cos()
、tan()
、arcsin()
,arccos()
, arctan()
需要特別注意的一點是:三角函數(shù)的傳入值,默認(rèn)情況下是弧度制;常見三角函數(shù),舉例如下:
a = np.array([0,30,45,60,90]) sin = np.sin(a*np.pi/180) print(sin) # [0. 0.5 0.70710678 0.8660254 1. ] print(np.arcsin(sin)) # [0. 0.52359878 0.78539816 1.04719755 1.57079633] cos = np.cos(a*np.pi/180) print(cos) # [1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01 6.12323400e-17] print(np.arccos(cos)) # [0. 0.52359878 0.78539816 1.04719755 1.57079633] tan = np.tan(a*np.pi/180) print(tan) # [0.00000000e+00 5.77350269e-01 1.00000000e+00 1.73205081e+00 1.63312394e+16] print(np.arctan(tan)) # [0. 0.52359878 0.78539816 1.04719755 1.57079633]
numpy.degrees()
利用numpy.degrees() 可以將弧度制轉(zhuǎn)化為角度制,舉例如下:
a = np.array([0,30,45,60,90]) sin = np.sin(a*np.pi/180) # 這里的sin輸出的為對應(yīng)角的sin值; print(np.degrees(np.arcsin(sin))) # 這里為先取arcsin(),再將結(jié)果轉(zhuǎn)化為角度制,輸出為:[ 0. 30. 45. 60. 90.]
numpy.around()
使用 numpy.around()
函數(shù),可以返回指定小數(shù)位數(shù)的四舍五入結(jié)果,格式如下:
numpy.around(a,decimals)
參數(shù) | 說明 |
---|---|
a | 待四舍五入的數(shù)組 |
decimal | 四舍五入后的小數(shù)位數(shù),默認(rèn)值為0。 如果為負(fù),整數(shù)將四舍五入到小數(shù)點左側(cè)的位置 |
舉例如下:
a = np.array([111.11111,222.33333,444.55555,666.8888,777.9999]) print(np.around(a,2)) # [111.11 222.33 444.56 666.89 778. ] print(np.around(a,-2)) # 四舍五入到小數(shù)點左邊兩位 # [100. 200. 400. 700. 800.]
numpy.ceil()
使用 numpy.ceil()
函數(shù),可以返回向上取整的結(jié)果,舉例如下:
a = np.array([111.11111,222.33333,444.55555,666.8888,777.9999]) print(np.ceil(a)) # [112. 223. 445. 667. 778.]
這個時候,有聰明的小伙伴會問,那如果我想要讓小數(shù)點后兩位的地方進(jìn)行向上取整呢?(這里叫向上取整似乎不是很科學(xué),但是領(lǐng)悟精神);我們只需要簡單的運算就可以,舉例如下:
a = np.array([111.11111,222.33333,444.55555,666.8888,777.9999]) print(np.ceil(a*100)/100) # [111.12 222.34 444.56 666.89 778. ] np.set_printoptions(formatter={'float':'{:.2f}'.format})
上面的輸出方法中,有些小數(shù)點后的0沒有被顯示,所以可以使用如下方法輸出:
a = np.array([111.11111,222.33333,444.55555,666.8888,777.9999]) np.set_printoptions(formatter={'float':'{:.2f}'.format}) # 設(shè)置np的顯示位數(shù) print(np.ceil(a*100)/100) # [111.12 222.34 444.56 666.89 778.00]
numpy.floor()
使用 numpy.floor()
函數(shù),可以返回向下取整的結(jié)果,舉例如下:
a = np.array([111.11111,222.33333,444.55555,666.8888,777.9999]) print(np.floor(a*100)/100) # [111.11 222.33 444.55 666.88 777.99]
np.power()
格式:np.power(a, b)
,其中,a,b 可以是任意滿足Shape相同,或者滿足廣播規(guī)則的數(shù)組,a 為底數(shù),b 為指數(shù);
b = np.array([1,2,3,4]) print(np.power(b,2)) # [ 1 4 9 16]
numpy.mod()
格式:numpy.mod(a, b)
,其中,a,b 可以是任意滿足Shape相同,或者滿足廣播規(guī)則的數(shù)組,最終的結(jié)果為 a/b 之后的余數(shù),舉例如下:
b = np.array([1,2,3,4]) print(np.mod(b,2)) # [1 0 1 0]
numpy 提供了非常多的統(tǒng)計運算函數(shù),包含:最大值,最小值,極差,標(biāo)準(zhǔn)差,方法等等,現(xiàn)列舉如下常用統(tǒng)計函數(shù):
numpy.amin()
和 numpy.amax()
numpy.amin()
用于計算numpy數(shù)組中的元素沿某個指定軸的最小值,若不指定軸,則返回整個數(shù)組中的最小值。numpy.amax()
用于計算numpy數(shù)組中的元素沿某個指定軸的最大值,若不指定軸,則返回整個數(shù)組中的最大值。
當(dāng)軸的設(shè)置為0時,返回每個列的最小值;當(dāng)軸設(shè)置為1時,返回每個行的最小值;
舉例如下:
a = np.arange(9).reshape(3,3) print(a) # [[0 1 2] # [3 4 5] # [6 7 8]] print(np.amin(a)) # 0 print(np.amin(a,0)) # [0 1 2] print(np.amin(a,1)) # [0 3 6] print(np.amax(a)) # 8 print(np.amax(a,0)) # [6 7 8] print(np.amax(a,1)) # [2 5 8]
numpy.ptp()
使用 numpy.ptp()函數(shù)計算數(shù)組的極差,即元素最大值與最小值的差(最大值 - 最小值)。
a = np.arange(9).reshape(3,3) # [[0 1 2] # [3 4 5] # [6 7 8]] print(np.ptp(a)) # 8 print(np.ptp(a,0)) # [6 6 6] print(np.ptp(a,1)) # [2 2 2]
numpy.percentile()
分位數(shù)是統(tǒng)計學(xué)中常用的統(tǒng)計量,其中:四分之一分位數(shù),中位數(shù),四分之三分位數(shù) 是箱型圖中最重要的三個值; 在Numpy中,我們可以使用numpy.percentile() 來計算一個數(shù)組的分位數(shù),格式如下:
numpy.percentile(a, q, axis)
參數(shù) | 解釋 |
---|---|
a | 輸入的數(shù)組 |
q | 需要計算的分位數(shù),范圍為0 ~ 100; |
axis | 指定計算的軸的方向,不輸入則為整個數(shù)組計算分位數(shù) |
舉例如下:
a = np.arange(100).reshape(10,10) print(np.percentile(a,25)) # 25.75 print(np.percentile(a,25,axis=0)) # [23.5 24.5 25.5 26.5 27.5 28.5 29.5 30.5 31.5 32.5] print(np.percentile(a,25,axis=1)) # [ 3.25 13.25 23.25 33.25 43.25 53.25 63.25 73.25 83.25 93.25]
numpy.median()
中位數(shù)就是百分之五十分位數(shù),使用方法也很簡單,舉例如下:
a = np.arange(100).reshape(10,10) print(np.percentile(a,50)) print(np.median(a)) # 兩個輸出是完全一樣的; # 49.5 print(np.percentile(a,50,axis=0)) print(np.median(a,axis=0)) # [45. 46. 47. 48. 49. 50. 51. 52. 53. 54.] print(np.percentile(a,50,axis=1)) print(np.median(a,axis=1)) # [ 4.5 14.5 24.5 34.5 44.5 54.5 64.5 74.5 84.5 94.5]
numpy.mean()
Numpy 中 numpy.mean()
函數(shù)返回數(shù)組中元素的算術(shù)平均值。 如果提供了軸,則沿其計算。
a = np.arange(100).reshape(10,10) print(np.mean(a)) # 49.5 print(np.mean(a,axis=0)) # [45. 46. 47. 48. 49. 50. 51. 52. 53. 54.] print(np.mean(a,axis=1)) # [ 4.5 14.5 24.5 34.5 44.5 54.5 64.5 74.5 84.5 94.5]
numpy.average()
該函數(shù)與numpy.mean()
的區(qū)別為,numpy.average()
可以計算加權(quán)平均數(shù),即:可以根據(jù)權(quán)重來計算平均值;若我們不給權(quán)重參數(shù),則numpy.average()
與numpy.mean()
是一樣的,舉例如下:
a = np.arange(9).reshape(3,3) print(np.average(a)) # 4.0 print(np.mean(a)) # 4.0 b= np.array([1,2,3]) print(np.average(a,axis=0,weights=b)) # [4. 5. 6.] print(np.average(a,axis=1,weights=b)) # [1.33333333 4.33333333 7.33333333]
解釋:數(shù)組[1,2,3,4]和相應(yīng)的權(quán)重[4,3,2,1],通過將相應(yīng)元素的乘積相加,并將和除以權(quán)重的和,來計算加權(quán)平均值。加權(quán)平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)
,和我們大學(xué)計算平均分是一樣的;
numpy.std()
標(biāo)準(zhǔn)差是統(tǒng)計學(xué)中最常用的統(tǒng)計量之一,主要用來度量一組數(shù)據(jù)的分散程度,標(biāo)準(zhǔn)差的公式為:sqrt(mean((x - x.mean())**2))
,在Numpy中計算標(biāo)準(zhǔn)差非常容易,舉例如下:
a = np.arange(100).reshape(10,10) print(np.std(a)) # 28.86607004772212 print(np.std(a,axis=0)) # [28.72281323 28.72281323 28.72281323 28.72281323 28.72281323 28.7228132 28.72281323 28.72281323 28.72281323 28.72281323] print(np.std(a,axis=1)) # [2.87228132 2.87228132 2.87228132 2.87228132 2.87228132 2.87228132 2.87228132 2.87228132 2.87228132 2.87228132]
numpy.var()
統(tǒng)計中的方差是每個樣本值與全體樣本值平均數(shù)之差的平方值的平均數(shù),即 mean((x - x.mean())** 2)
。
換句話說,標(biāo)準(zhǔn)差是方差的平方根。
a = np.arange(100).reshape(10,10) print(np.var(a)) # 833.25 print(np.var(a,axis=0)) # [825. 825. 825. 825. 825. 825. 825. 825. 825. 825.] print(np.var(a,axis=1)) # [8.25 8.25 8.25 8.25 8.25 8.25 8.25 8.25 8.25 8.25]
字符串相關(guān)函數(shù),在numpy中使用的不是很多,僅了解就好;
函數(shù) | 解釋 |
---|---|
numpy.char.add() | numpy.char.add() 函數(shù)依次對兩個數(shù)組的元素進(jìn)行字符串連接。 |
numpy.char.multiply() | numpy.char.multiply() 函數(shù)執(zhí)行多重連接。 |
np.char.center(str , width,fillchar) | numpy.char.center() 函數(shù)用于將字符串居中,并使用指定字符在左側(cè)和右側(cè)進(jìn)行填充。 |
numpy.char.capitalize() | 將字符串的第一個字母轉(zhuǎn)換為大寫; |
numpy.char.title() | 函數(shù)將字符串的每個單詞的第一個字母轉(zhuǎn)換為大寫; |
numpy.char.lower() | 對數(shù)組的每個元素轉(zhuǎn)換為小寫; |
numpy.char.upper() | 對數(shù)組的每個元素轉(zhuǎn)換為大寫; |
numpy.char.split() | 指定分隔符對字符串進(jìn)行分割,并返回數(shù)組。默認(rèn)情況下,分隔符為空格。 |
numpy.char.splitlines() | 以換行符作為分隔符來分割字符串,并返回數(shù)組。 \n,\r,\r\n 都可用作換行符。 |
numpy.char.strip() | 用于移除開頭或結(jié)尾處的特定字符。 |
numpy.char.join() | 通過指定分隔符來連接數(shù)組中的元素或字符串。 |
numpy.char.replace() | 使用新字符串替換字符串中的所有子字符串。 |
numpy.char.encode() | 對數(shù)組中的每個元素調(diào)用 str.encode 函數(shù)。 默認(rèn)編碼是 utf-8,可以使用標(biāo)準(zhǔn) Python 庫中的編解碼器。 |
numpy.char.decode() | 對編碼的元素進(jìn)行 str.decode() 解碼。 |
到此,相信大家對“Numpy常用的函數(shù)有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!