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])
参考文档:
作者:悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。