numpy.amin() 用于計(jì)算數(shù)組中的元素沿指定軸的最小值。
numpy.amax() 用于計(jì)算數(shù)組中的元素沿指定軸的最大值。
import numpy as np a = np.array([[3,7,5],[8,4,3],[2,4,9]]) print ('我們的數(shù)組是:',a) print ('調(diào)用 amin() 函數(shù):',np.amin(a,1)) print ('再次調(diào)用 amin() 函數(shù):',np.amin(a,0)) print ('調(diào)用 amax() 函數(shù):',np.amax(a)) print ('再次調(diào)用 amax() 函數(shù):',np.amax(a, axis = 0))
輸出結(jié)果為:
我們的數(shù)組是: [[3 7 5] [8 4 3] [2 4 9]] 調(diào)用 amin() 函數(shù): [3 3 2] 再次調(diào)用 amin() 函數(shù): [2 4 3] 調(diào)用 amax() 函數(shù): 9 再次調(diào)用 amax() 函數(shù): [8 7 9]
numpy.ptp()函數(shù)計(jì)算數(shù)組中元素最大值與最小值的差(最大值 - 最小值)。
import numpy as np a = np.array([[3,7,5],[8,4,3],[2,4,9]]) print ('調(diào)用 ptp() 函數(shù):',np.ptp(a)) print ('沿軸 1 調(diào)用 ptp() 函數(shù):',np.ptp(a, axis = 1)) print ('沿軸 0 調(diào)用 ptp() 函數(shù):',np.ptp(a, axis = 0))
輸出結(jié)果為:
調(diào)用 ptp() 函數(shù): 7 沿軸 1 調(diào)用 ptp() 函數(shù): [4 5 7] 沿軸 0 調(diào)用 ptp() 函數(shù): [6 3 6]
百分位數(shù)是統(tǒng)計(jì)中使用的度量,表示小于這個(gè)值的觀察值的百分比。 函數(shù)numpy.percentile()接受以下參數(shù)。
numpy.percentile(a, q, axis)
參數(shù)說(shuō)明:
a: 輸入數(shù)組 q: 要計(jì)算的百分位數(shù),在 0 ~ 100 之間 axis: 沿著它計(jì)算百分位數(shù)的軸
首先明確百分位數(shù):
第 p 個(gè)百分位數(shù)是這樣一個(gè)值,它使得至少有 p% 的數(shù)據(jù)項(xiàng)小于或等于這個(gè)值,且至少有 (100-p)% 的數(shù)據(jù)項(xiàng)大于或等于這個(gè)值。
舉個(gè)實(shí)例:高等院校的入學(xué)考試成績(jī)經(jīng)常以百分位數(shù)的形式報(bào)告。比如,假設(shè)某個(gè)考生在入學(xué)考試中的語(yǔ)文部分的原始分?jǐn)?shù)為 54 分。相對(duì)于參加同一考試的其他學(xué)生來(lái)說(shuō),他的成績(jī)?nèi)绾尾⒉蝗菀字?。但是如果原始分?jǐn)?shù)54分恰好對(duì)應(yīng)的是第70百分位數(shù),我們就能知道大約70%的學(xué)生的考分比他低,而約30%的學(xué)生考分比他高。
這里的 p = 70。
import numpy as np a = np.array([[10, 7, 4], [3, 2, 1]]) # 50% 的分位數(shù),就是 a 里排序之后的中位數(shù) print ('調(diào)用 percentile() 函數(shù):',np.percentile(a, 50)) # axis 為 0,在縱列上求 print (np.percentile(a, 50, axis=0)) # axis 為 1,在橫行上求 print (np.percentile(a, 50, axis=1)) # 保持維度不變 print (np.percentile(a, 50, axis=1, keepdims=True))
輸出結(jié)果為:
調(diào)用 percentile() 函數(shù): 3.5 [6.5 4.5 2.5] [7. 2.] [[7.] [2.]]
numpy.median() 函數(shù)用于計(jì)算數(shù)組 a 中元素的中位數(shù)(中值)
import numpy as np a = np.array([[30,65,70],[80,95,10],[50,90,60]]) print ('調(diào)用 median() 函數(shù):',np.median(a)) print ('沿軸 0 調(diào)用 median() 函數(shù):',np.median(a, axis = 0)) print ('沿軸 1 調(diào)用 median() 函數(shù):',np.median(a, axis = 1))
輸出結(jié)果為:
調(diào)用 median() 函數(shù): 65.0 沿軸 0 調(diào)用 median() 函數(shù): [50. 90. 60.] 沿軸 1 調(diào)用 median() 函數(shù): [65. 80. 60.]
numpy.mean() 函數(shù)返回?cái)?shù)組中元素的算術(shù)平均值。 如果提供了軸,則沿其計(jì)算。
算術(shù)平均值是沿軸的元素的總和除以元素的數(shù)量。
import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print ('調(diào)用 mean() 函數(shù):',(np.mean(a)) print ('沿軸 0 調(diào)用 mean() 函數(shù):',np.mean(a, axis = 0)) print ('沿軸 1 調(diào)用 mean() 函數(shù):',np.mean(a, axis = 1))
輸出結(jié)果為:
調(diào)用 mean() 函數(shù):3.6666666666666665 沿軸 0 調(diào)用 mean() 函數(shù):[2.66666667 3.66666667 4.66666667] 沿軸 1 調(diào)用 mean() 函數(shù):[2. 4. 5.]
numpy.average() 函數(shù)根據(jù)在另一個(gè)數(shù)組中給出的各自的權(quán)重計(jì)算數(shù)組中元素的加權(quán)平均值。
該函數(shù)可以接受一個(gè)軸參數(shù)。 如果沒(méi)有指定軸,則數(shù)組會(huì)被展開(kāi)。<
加權(quán)平均值即將各數(shù)值乘以相應(yīng)的權(quán)數(shù),然后加總求和得到總體值,再除以總的單位數(shù)。
考慮數(shù)組[1,2,3,4]和相應(yīng)的權(quán)重[4,3,2,1],通過(guò)將相應(yīng)元素的乘積相加,并將和除以權(quán)重的和,來(lái)計(jì)算加權(quán)平均值。
加權(quán)平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)
import numpy as np a = np.array([1,2,3,4]) print ('調(diào)用 average() 函數(shù):',np.average(a)) # 不指定權(quán)重時(shí)相當(dāng)于 mean 函數(shù) wts = np.array([4,3,2,1]) print ('再次調(diào)用 average() 函數(shù):',np.average(a,weights = wts)) # 如果 returned 參數(shù)設(shè)為 True,則返回權(quán)重的和 print ('權(quán)重的和:',np.average([1,2,3, 4],weights = [4,3,2,1], returned = True))
輸出結(jié)果為:
調(diào)用 average() 函數(shù):2.5 再次調(diào)用 average() 函數(shù):2.0 權(quán)重的和:(2.0, 10.0)
在多維數(shù)組中,可以指定用于計(jì)算的軸。
import numpy as np a = np.arange(6).reshape(3,2) wt = np.array([3,5]) print ('修改后的數(shù)組:',np.average(a, axis = 1, weights = wt)) print ('修改后的數(shù)組:',np.average(a, axis = 1, weights = wt, returned = True))
輸出結(jié)果為:
修改后的數(shù)組: [0.625 2.625 4.625] 修改后的數(shù)組: (array([0.625, 2.625, 4.625]), array([8., 8., 8.]))
標(biāo)準(zhǔn)差是一組數(shù)據(jù)平均值分散程度的一種度量。
標(biāo)準(zhǔn)差是方差的算術(shù)平方根。
標(biāo)準(zhǔn)差公式如下:
std = sqrt(mean((x - x.mean())**2))
如果數(shù)組是 [1,2,3,4],則其平均值為 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且再求其平均值的平方根除以 4,即 sqrt(5/4) ,結(jié)果為 1.1180339887498949。
import numpy as np print (np.std([1,2,3,4]))
輸出結(jié)果為:
1.1180339887498949
統(tǒng)計(jì)中的方差(樣本方差)是每個(gè)樣本值與全體樣本值的平均數(shù)之差的平方值的平均數(shù),即 mean((x - x.mean())** 2)。
換句話說(shuō),標(biāo)準(zhǔn)差是方差的平方根。
import numpy as np print (np.var([1,2,3,4]))
1.25