您好,登錄后才能下訂單哦!
本篇內容主要講解“Numpy常用的函數有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Numpy常用的函數有哪些”吧!
首先Numpy 可以進行加減乘除運算的前提是:Shape相同,或者滿足廣播規則
numpy 進行加減乘除時,可以使用運算符號,即:+,-,*,/
,也可以使用對應的函數: 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()
需要特別注意的一點是:三角函數的傳入值,默認情況下是弧度制;常見三角函數,舉例如下:
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() 可以將弧度制轉化為角度制,舉例如下:
a = np.array([0,30,45,60,90]) sin = np.sin(a*np.pi/180) # 這里的sin輸出的為對應角的sin值; print(np.degrees(np.arcsin(sin))) # 這里為先取arcsin(),再將結果轉化為角度制,輸出為:[ 0. 30. 45. 60. 90.]
numpy.around()
使用 numpy.around()
函數,可以返回指定小數位數的四舍五入結果,格式如下:
numpy.around(a,decimals)
參數 | 說明 |
---|---|
a | 待四舍五入的數組 |
decimal | 四舍五入后的小數位數,默認值為0。 如果為負,整數將四舍五入到小數點左側的位置 |
舉例如下:
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)) # 四舍五入到小數點左邊兩位 # [100. 200. 400. 700. 800.]
numpy.ceil()
使用 numpy.ceil()
函數,可以返回向上取整的結果,舉例如下:
a = np.array([111.11111,222.33333,444.55555,666.8888,777.9999]) print(np.ceil(a)) # [112. 223. 445. 667. 778.]
這個時候,有聰明的小伙伴會問,那如果我想要讓小數點后兩位的地方進行向上取整呢?(這里叫向上取整似乎不是很科學,但是領悟精神);我們只需要簡單的運算就可以,舉例如下:
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})
上面的輸出方法中,有些小數點后的0沒有被顯示,所以可以使用如下方法輸出:
a = np.array([111.11111,222.33333,444.55555,666.8888,777.9999]) np.set_printoptions(formatter={'float':'{:.2f}'.format}) # 設置np的顯示位數 print(np.ceil(a*100)/100) # [111.12 222.34 444.56 666.89 778.00]
numpy.floor()
使用 numpy.floor()
函數,可以返回向下取整的結果,舉例如下:
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相同,或者滿足廣播規則的數組,a 為底數,b 為指數;
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相同,或者滿足廣播規則的數組,最終的結果為 a/b 之后的余數,舉例如下:
b = np.array([1,2,3,4]) print(np.mod(b,2)) # [1 0 1 0]
numpy 提供了非常多的統計運算函數,包含:最大值,最小值,極差,標準差,方法等等,現列舉如下常用統計函數:
numpy.amin()
和 numpy.amax()
numpy.amin()
用于計算numpy數組中的元素沿某個指定軸的最小值,若不指定軸,則返回整個數組中的最小值。numpy.amax()
用于計算numpy數組中的元素沿某個指定軸的最大值,若不指定軸,則返回整個數組中的最大值。
當軸的設置為0時,返回每個列的最小值;當軸設置為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()函數計算數組的極差,即元素最大值與最小值的差(最大值 - 最小值)。
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()
分位數是統計學中常用的統計量,其中:四分之一分位數,中位數,四分之三分位數 是箱型圖中最重要的三個值; 在Numpy中,我們可以使用numpy.percentile() 來計算一個數組的分位數,格式如下:
numpy.percentile(a, q, axis)
參數 | 解釋 |
---|---|
a | 輸入的數組 |
q | 需要計算的分位數,范圍為0 ~ 100; |
axis | 指定計算的軸的方向,不輸入則為整個數組計算分位數 |
舉例如下:
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()
中位數就是百分之五十分位數,使用方法也很簡單,舉例如下:
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()
函數返回數組中元素的算術平均值。 如果提供了軸,則沿其計算。
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()
該函數與numpy.mean()
的區別為,numpy.average()
可以計算加權平均數,即:可以根據權重來計算平均值;若我們不給權重參數,則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]
解釋:數組[1,2,3,4]和相應的權重[4,3,2,1],通過將相應元素的乘積相加,并將和除以權重的和,來計算加權平均值。加權平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)
,和我們大學計算平均分是一樣的;
numpy.std()
標準差是統計學中最常用的統計量之一,主要用來度量一組數據的分散程度,標準差的公式為:sqrt(mean((x - x.mean())**2))
,在Numpy中計算標準差非常容易,舉例如下:
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()
統計中的方差是每個樣本值與全體樣本值平均數之差的平方值的平均數,即 mean((x - x.mean())** 2)
。
換句話說,標準差是方差的平方根。
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]
字符串相關函數,在numpy中使用的不是很多,僅了解就好;
函數 | 解釋 |
---|---|
numpy.char.add() | numpy.char.add() 函數依次對兩個數組的元素進行字符串連接。 |
numpy.char.multiply() | numpy.char.multiply() 函數執行多重連接。 |
np.char.center(str , width,fillchar) | numpy.char.center() 函數用于將字符串居中,并使用指定字符在左側和右側進行填充。 |
numpy.char.capitalize() | 將字符串的第一個字母轉換為大寫; |
numpy.char.title() | 函數將字符串的每個單詞的第一個字母轉換為大寫; |
numpy.char.lower() | 對數組的每個元素轉換為小寫; |
numpy.char.upper() | 對數組的每個元素轉換為大寫; |
numpy.char.split() | 指定分隔符對字符串進行分割,并返回數組。默認情況下,分隔符為空格。 |
numpy.char.splitlines() | 以換行符作為分隔符來分割字符串,并返回數組。 \n,\r,\r\n 都可用作換行符。 |
numpy.char.strip() | 用于移除開頭或結尾處的特定字符。 |
numpy.char.join() | 通過指定分隔符來連接數組中的元素或字符串。 |
numpy.char.replace() | 使用新字符串替換字符串中的所有子字符串。 |
numpy.char.encode() | 對數組中的每個元素調用 str.encode 函數。 默認編碼是 utf-8,可以使用標準 Python 庫中的編解碼器。 |
numpy.char.decode() | 對編碼的元素進行 str.decode() 解碼。 |
到此,相信大家對“Numpy常用的函數有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。