NumPy 统计函数

NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下:

import numpy as np

#numpy.amin() 和 numpy.amax()
#numpy.amin() 用于计算数组中的元素沿指定轴的最小值。
#numpy.amax() 用于计算数组中的元素沿指定轴的最大值。

a = np.array([[3,7,5],[8,4,3],[2,4,9]])  
print(a)
print(np.amin(a,1))
print(np.amin(a,0))
print(np.amax(a))
#[[3 7 5]
# [8 4 3]
# [2 4 9]]
#[3 3 2]
#[2 4 3]
#9

#numpy.ptp()函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。
a = np.array([[3,7,5],[8,4,3],[2,4,9]])  
print(np.ptp(a,0))
print(np.ptp(a,1))
print(np.ptp(a))
#[6 3 6]
#[4 5 7]
#7


#百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。 
#函数numpy.percentile()接受以下参数。
a = np.array([[10, 7, 4], [3, 2, 1]])
print(a)
# 50% 的分位数,就是 a 里排序之后的中位数
print(np.percentile(a,50))
print(np.percentile(a,50,axis=0))
print(np.percentile(a,50,axis=1))
#[[10  7  4]
# [ 3  2  1]]
#3.5
#[6.5 4.5 2.5]
#[7. 2.]
# 保持维度不变
print (np.percentile(a, 50, axis=1, keepdims=True))
#[[7.]
# [2.]]

#numpy.median() 函数用于计算数组 a 中元素的中位数(中值)
a = np.array([[30,65,70],[80,95,10],[50,90,60]])  
print(a)
print(np.median(a))
print(np.median(a,0))
print(np.median(a,1))
#[[30 65 70]
# [80 95 10]
# [50 90 60]]
#65.0
#[50. 90. 60.]
#[65. 80. 60.]

#numpy.mean() 函数返回数组中元素的算术平均值。 如果提供了轴,则沿其计算。
#算术平均值是沿轴的元素的总和除以元素的数量。
a = np.array([[1,2,3],[3,4,5],[4,5,6]])  
print(a)
print(np.mean(a))
print(np.mean(a,0))
print(np.mean(a,1))
#[[1 2 3]
# [3 4 5]
# [4 5 6]]
#3.6666666666666665
#[2.66666667 3.66666667 4.66666667]
#[2. 4. 5.]

#numpy.average()
#numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。
#该函数可以接受一个轴参数。 如果没有指定轴,则数组会被展开。
#加权平均值即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。
#考虑数组[1,2,3,4]和相应的权重[4,3,2,1],通过将相应元素的乘积相加,并将和除以权重的和,来计算加权平均值。
#加权平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)
a=np.array([1,2,3,4])
#不指定权重时相当于 mean 函数
print(np.average(a))
wts=np.array([4,3,2,1])
print(np.average(a,weights=wts))
# 如果 returned 参数设为 true,则返回权重的和  
print (np.average([1,2,3,4],weights =  [4,3,2,1], returned =True))
#2.5
#2.0
#(2.0, 10.0)

#在多维数组中,可以指定用于计算的轴。
a = np.arange(6).reshape(3,2)  
print (a)
wt = np.array([3,5])
print(wt)
#[[0 1]
# [2 3]
# [4 5]]
#[3 5]
print (np.average(a, axis = 1, weights = wt))
print (np.average(a, axis =  1, weights = wt, returned =  True))
#[0.625 2.625 4.625]
#(array([0.625, 2.625, 4.625]), array([8., 8., 8.]))


#标准差是一组数据平均值分散程度的一种度量。
#标准差是方差的算术平方根。
#std = sqrt(mean((x - x.mean())**2))
print(np.std([1,2,3,4]))
#1.118033988749895


#方差
#统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。
#换句话说,标准差是方差的平方根。
print(np.var([1,2,3,4]))
#1.25

参考:https://www.runoob.com/numpy/numpy-statistical-functions.html

以上,记录本人学习过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值