numpy 學習:統計函數和相關性

數組的統計函數用於對數組做統計運算。

一,統計方法

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])

 

參考文檔:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章