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

 

参考文档:

posted @ 2022-01-05 14:21  悦光阴  阅读(928)  评论(0编辑  收藏  举报