numpy. 統計相關
統計相關
次序統計
計算最小值
numpy.amin(a[, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue])
Return the minimum of an array or minimum along an axis.
【例】計算最小值
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.amin(x)
print(y) # 11
y = np.amin(x, axis=0)
print(y) # [11 12 13 14 15]
y = np.amin(x, axis=1)
print(y) # [11 16 21 26 31]
計算最大值
numpy.amax(a[, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue])
Return the maximum of an array or maximum along an axis.
【例】計算最大值
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.amax(x)
print(y) # 35
y = np.amax(x, axis=0)
print(y) # [31 32 33 34 35]
y = np.amax(x, axis=1)
print(y) # [15 20 25 30 35]
計算極差
numpy.ptp(a, axis=None, out=None, keepdims=np._NoValue)
Range of values (maximum - minimum) along an axis. The name of the function comes from the acronym for ‘peak to peak’.
【例】計算極差
import numpy as np
np.random.seed(20200623)
x = np.random.randint(0, 20, size=[4, 5])
print(x)
# [[10 2 1 1 16]
# [18 11 10 14 10]
# [11 1 9 18 8]
# [16 2 0 15 16]]
print(np.ptp(x)) # 18
print(np.ptp(x, axis=0)) # [ 8 10 10 17 8]
print(np.ptp(x, axis=1)) # [15 8 17 16]
計算分位數
numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)
Compute the q-th percentile of the data along the specified axis. Returns the q-th percentile(s) of the array elements.- a:array,用來算分位數的物件,可以是多維的陣列。
- q:介於0-100的float,用來計算是幾分位的引數,如四分之一位就是25,如要算兩個位置的數就[25,75]。
- axis:座標軸的方向,一維的就不用考慮了,多維的就用這個調整計算的維度方向,取值範圍0/1。
【例】計算分位數
import numpy as np
np.random.seed(20200623)
x = np.random.randint(0, 20, size=[4, 5])
print(x)
# [[10 2 1 1 16]
# [18 11 10 14 10]
# [11 1 9 18 8]
# [16 2 0 15 16]]
print(np.percentile(x, [25, 50]))
# [ 2. 10.]
print(np.percentile(x, [25, 50], axis=0))
# [[10.75 1.75 0.75 10.75 9.5 ]
# [13.5 2. 5. 14.5 13. ]]
print(np.percentile(x, [25, 50], axis=1))
# [[ 1. 10. 8. 2.]
# [ 2. 11. 9. 15.]]
均值與方差
計算中位數
numpy.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)
Compute the median along the specified axis. Returns the median of the array elements.
【例】計算中位數
import numpy as np
np.random.seed(20200623)
x = np.random.randint(0, 20, size=[4, 5])
print(x)
# [[10 2 1 1 16]
# [18 11 10 14 10]
# [11 1 9 18 8]
# [16 2 0 15 16]]
print(np.percentile(x, 50))
print(np.median(x))
# 10.0
print(np.percentile(x, 50, axis=0))
print(np.median(x, axis=0))
# [13.5 2. 5. 14.5 13. ]
print(np.percentile(x, 50, axis=1))
print(np.median(x, axis=1))
# [ 2. 11. 9. 15.]
計算平均值
numpy.mean(a[, axis=None, dtype=None, out=None, keepdims=np._NoValue)])
Compute the arithmetic mean along the specified axis.
【例】計算平均值(沿軸的元素的總和除以元素的數量)。
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.mean(x)
print(y) # 23.0
y = np.mean(x, axis=0)
print(y) # [21. 22. 23. 24. 25.]
y = np.mean(x, axis=1)
print(y) # [13. 18. 23. 28. 33.]
計算加權平均值
numpy.average(a[, axis=None, weights=None, returned=False])
Compute the weighted average along the specified axis.
mean
和average
都是計算均值的函式,在不指定權重的時候average
和mean
是一樣的。指定權重後,average
可以計算加權平均值。
【例】計算加權平均值(將各數值乘以相應的權數,然後加總求和得到總體值,再除以總的單位數。)
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.average(x)
print(y) # 23.0
y = np.average(x, axis=0)
print(y) # [21. 22. 23. 24. 25.]
y = np.average(x, axis=1)
print(y) # [13. 18. 23. 28. 33.]
y = np.arange(1, 26).reshape([5, 5])
print(y)
# [[ 1 2 3 4 5]
# [ 6 7 8 9 10]
# [11 12 13 14 15]
# [16 17 18 19 20]
# [21 22 23 24 25]]
z = np.average(x, weights=y)
print(z) # 27.0
z = np.average(x, axis=0, weights=y)
print(z)
# [25.54545455 26.16666667 26.84615385 27.57142857 28.33333333]
z = np.average(x, axis=1, weights=y)
print(z)
# [13.66666667 18.25 23.15384615 28.11111111 33.08695652]
計算方差
numpy.var(a[, axis=None, dtype=None, out=None, ddof=0, keepdims=np._NoValue])
Compute the variance along the specified axis.- ddof=0:是“Delta Degrees of Freedom”,表示自由度的個數。
要注意方差和樣本方差的無偏估計,方差公式中分母上是n
;樣本方差無偏估計公式中分母上是n-1
(n
為樣本個數)。
【例】計算方差
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.var(x)
print(y) # 52.0
y = np.mean((x - np.mean(x)) ** 2)
print(y) # 52.0
y = np.var(x, ddof=1)
print(y) # 54.166666666666664
y = np.sum((x - np.mean(x)) ** 2) / (x.size - 1)
print(y) # 54.166666666666664
y = np.var(x, axis=0)
print(y) # [50. 50. 50. 50. 50.]
y = np.var(x, axis=1)
print(y) # [2. 2. 2. 2. 2.]
計算標準差
numpy.std(a[, axis=None, dtype=None, out=None, ddof=0, keepdims=np._NoValue])
Compute the standard deviation along the specified axis.
標準差是一組資料平均值分散程度的一種度量,是方差的算術平方根。
【例】計算標準差
import numpy as np
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.std(x)
print(y) # 7.211102550927978
y = np.sqrt(np.var(x))
print(y) # 7.211102550927978
y = np.std(x, axis=0)
print(y)
# [7.07106781 7.07106781 7.07106781 7.07106781 7.07106781]
y = np.std(x, axis=1)
print(y)
# [1.41421356 1.41421356 1.41421356 1.41421356 1.41421356]
相關
計算協方差矩陣
numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None,aweights=None)
Estimate a covariance matrix, given data and weights.
【例】計算協方差矩陣
import numpy as np
x = [1, 2, 3, 4, 6]
y = [0, 2, 5, 6, 7]
print(np.cov(x)) # 3.7 #樣本方差
print(np.cov(y)) # 8.5 #樣本方差
print(np.cov(x, y))
# [[3.7 5.25]
# [5.25 8.5 ]]
print(np.var(x)) # 2.96 #方差
print(np.var(x, ddof=1)) # 3.7 #樣本方差
print(np.var(y)) # 6.8 #方差
print(np.var(y, ddof=1)) # 8.5 #樣本方差
z = np.mean((x - np.mean(x)) * (y - np.mean(y))) #協方差
print(z) # 4.2
z = np.sum((x - np.mean(x)) * (y - np.mean(y))) / (len(x) - 1) #樣本協方差
print(z) # 5.25
z = np.dot(x - np.mean(x), y - np.mean(y)) / (len(x) - 1) #樣本協方差
print(z) # 5.25
計算相關係數
numpy.corrcoef(x, y=None, rowvar=True, bias=np._NoValue, ddof=np._NoValue)
Return Pearson product-moment correlation coefficients.
理解了np.cov()
函式之後,很容易理解np.correlate()
,二者引數幾乎一模一樣。
np.cov()
描述的是兩個向量協同變化的程度,它的取值可能非常大,也可能非常小,這就導致沒法直觀地衡量二者協同變化的程度。相關係數實際上是正則化的協方差,n
個變數的相關係數形成一個n
維方陣。
【例】計算相關係數
import numpy as np
np.random.seed(20200623)
x, y = np.random.randint(0, 20, size=(2, 4))
print(x) # [10 2 1 1]
print(y) # [16 18 11 10]
z = np.corrcoef(x, y)
print(z)
# [[1. 0.48510096]
# [0.48510096 1. ]]
a = np.dot(x - np.mean(x), y - np.mean(y))
b = np.sqrt(np.dot(x - np.mean(x), x - np.mean(x)))
c = np.sqrt(np.dot(y - np.mean(y), y - np.mean(y)))
print(a / (b * c)) # 0.4851009629263671
直方圖
numpy.digitize(x, bins, right=False)
Return the indices of the bins to which each value in input array belongs.- x:numpy陣列
- bins:一維單調陣列,必須是升序或者降序
- right:間隔是否包含最右
- 返回值:x在bins中的位置。
【例】
import numpy as np
x = np.array([0.2, 6.4, 3.0, 1.6])
bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0])
inds = np.digitize(x, bins)
print(inds) # [1 4 3 2]
for n in range(x.size):
print(bins[inds[n] - 1], "<=", x[n], "<", bins[inds[n]])
# 0.0 <= 0.2 < 1.0
# 4.0 <= 6.4 < 10.0
# 2.5 <= 3.0 < 4.0
# 1.0 <= 1.6 < 2.5
【例】
import numpy as np
x = np.array([1.2, 10.0, 12.4, 15.5, 20.])
bins = np.array([0, 5, 10, 15, 20])
inds = np.digitize(x, bins, right=True)
print(inds) # [1 2 3 4 4]
inds = np.digitize(x, bins, right=False)
print(inds) # [1 3 3 4 5]
相關文章
- Numpy---統計相關
- numpy3.統計相關
- [20210910]table scan相關統計.txt
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- 【SCRIPT】Oracle統計資訊相關SQLOracleSQL
- 系統設計 相關面試題面試題
- 【系統設計】併發相關概念
- GreatSQL統計資訊相關知識點SQL
- Oracle 統計資訊相關命令彙總Oracle
- OCT影像分類1:相關論文統計
- MySQL索引統計資訊更新相關的引數MySql索引
- AirNet系統航跡和飛行計劃相關AI
- 日誌系統相關
- 偏相關係數計算
- linux系統相關概念與配置Linux
- 廣告系統相關術語
- 高校郵件系統配置相關
- 系統利益相關者描述案例
- 簡單格路計數相關
- 計算兩列的相關性
- 設計模式的相關介紹設計模式
- 計劃自動相關條件
- linux系統配置及相關檔案Linux
- 【Linux系統】fdisk相關分割槽命令。Linux
- Linux檢視相關係統資訊Linux
- Linux作業系統相關資料Linux作業系統
- 05計算機網路相關概念計算機網路
- UWB硬體設計相關內容
- App網路相關設計總結APP
- 作業系統相關知識總結作業系統
- java與作業系統相關的操作Java作業系統
- MySQL全面瓦解13:系統函式相關MySql函式
- 推薦系統相關術語知多少
- 隱私計算相關技術介紹
- 程式設計師的相關笑話(一)程式設計師
- SAP相關會計科目的設定OBYC
- 計算機指令集的相關概念計算機
- 儲存容量及相關計算單位