數組的統計函數用於對數組做統計運算。
一,統計方法
NumPy內置數據分析常用的統計量:
- mean():計算元素的均值
- median():計算中位數
- var():計算元素的方差
- std() :計算元素標準差
- max():計算元素的最大值
- min():計算元素的最小值
- ptp():計算元素的取值範圍,即最大值和最小值的差值
- percentile():計算百分位
- quantile():計算分爲數
- count_nonzero():計數
- cumsum:計算所有元素的累計和
- cumprod:計算所有元素的累計積
1,求和
舉個例子,創建一個二維數組,按照行和列分別求和:
a = np.array([[0, 2, 1] ,[0,1,0]]) r1=a.sum() r2=a.sum(axis=0) r3=a.sum(axis=1) print('a.sum() = {0}\na.sum(axis=0) = {1}\na.sum(axis=1) ={2}'.format(r1,r2,r3))
2,求積
舉個例子,創建一個二維數組,按照行和列分別求乘積:
a = np.array([[1, 2, 1] ,[1,1,0]]) r1=a.prod() r2=a.prod(axis=0) r3=a.prod(axis=1) print('a.prod() = {0}\na.prod(axis=0) = {1}\na.prod(axis=1) ={2}'.format(r1,r2,r3))
3,計算數組的均值
計算數組的均值,或者某一個維度的均值:
a = np.array([[1, 2, 1] ,[1,1,0]]) r1=a.mean() r2=a.mean(axis=0) r3=a.mean(axis=1) print('a.mean() = {0}\na.mean(axis=0) = {1}\na.mean(axis=1) ={2}'.format(r1,r2,r3))
4,統計非0元素的個數
作爲示例,考慮只包含1和0的一維向量中,統計從0 到 1 轉換的數量,在矢量化形式中,沒有明確的for循環或直接引用各個元素:
>>> np.count_nonzero(x[:-1] < x[1:])
二,相關性
1,返回 Pearson 積矩相關係數
numpy.corrcoef(x, y=None, rowvar=True, *, dtype=None)
2,協方差矩陣
根據data和weight,計算協方差矩陣:
numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None, *, dtype=None)
計算的邏輯:
m = np.arange(10, dtype=np.float64)
f = np.arange(10) * 2
a = np.arange(10) ** 2.
ddof = 1
w = f * a
v1 = np.sum(w)
v2 = np.sum(w * a)
m -= np.sum(m * w, axis=None, keepdims=True) / v1
cov = np.dot(m * w, m.T) * v1 / (v1**2 - ddof * v2)
3,相關性
計算兩個一維序列的相關性
numpy.correlate(a, v, mode='valid')
舉個例子:
np.correlate([1, 2, 3], [0, 1, 0.5])
array([3.5])
參考文檔: