前言
书接上回,本文补充NumPy中一些基本的统计函数,包括中位数、均值、加权平均、方差和标准差。
1. 中位数
np.median
函数用于计算数组的中位数。当数组是多维时,可以通过axis
参数指定沿着哪个轴计算中位数。
import numpy as np
arr = np.arange(1,7).reshape(2,3)
print(np.median(arr)) # 输出整个数组的中位数
# 运算结果:3.5
print(np.median(arr, axis=0)) # 沿着列计算中位数
# 运算结果:[1.5 3.5 5.5]
print(np.median(arr, axis=1)) # 沿着行计算中位数
# 运算结果:[2. 5.]
2. 均值
np.mean
函数用于计算数组的均值。同样,axis
参数指定沿着哪个轴计算均值。
arr = np.arange(1,7).reshape(2,3)
print(np.mean(arr)) # 输出整个数组的均值
# 运算结果:3.5
print(np.mean(arr, axis=0)) # 沿着列计算均值
# 运算结果:[2. 4. 6.]
print(np.mean(arr, axis=1)) # 沿着行计算均值
# 运算结果:[2.5 4.5]
3. 加权平均
np.average
函数用于计算加权平均值。通过weights
参数指定每个元素的权重。
加权平均值
=
∑
i
=
1
n
(
x
i
⋅
w
i
)
∑
i
=
1
n
w
i
加权平均值=\dfrac{∑_{i=1}^n(x_i⋅w_i)}{∑_{i=1}^nw_i}
加权平均值=∑i=1nwi∑i=1n(xi⋅wi)
其中:
- xi是数组中的元素。
- wi是对应的权重。
如果所有元素的权重之和等于1,则表示为数学中的期望值。
arr = np.arange(1,6)
w = np.array([0.1,0.2,0.3,0.2,0.2])
print(np.average(arr, weights=w)) # 加权平均
# 运算结果:3.2
4. 方差
np.var
函数用于计算数组的方差。ddof
参数指定计算总体方差还是样本方差(ddof=1
为样本方差)。
np.var 函数默认计算的是总体方差(Population Variance),而不是样本方差(Sample Variance)。
总体方差:
对于一个总体数据集 X={x1,x2,…,xN},总体方差的计算公式为:
σ
2
=
1
N
∑
i
=
1
N
(
x
i
−
μ
)
2
σ^2=\dfrac{1}{N}∑_{i=1}^N(x_i−μ)^2
σ2=N1i=1∑N(xi−μ)2
其中:
- N是总体数据点的总数。
- μ是总体的均值。
样本方差:
对于一个样本数据集 X={x1,x2,…,xn},样本方差 的计算公式为:
s
2
=
1
n
−
1
∑
i
=
1
n
(
x
i
−
x
‾
)
2
s^2=\dfrac{1}{n−1}∑_{i=1}^n(x_i−\overline x)^2
s2=n−11i=1∑n(xi−x)2
其中:
- n是样本数据点的总数。
- xˉ是样本的均值。
在样本数据中,样本均值的估计会引入一定的偏差。通过使用 n−1作为分母,可以校正这种偏差,得到更准确的总体方差估计。
arr = np.arange(1,6)
print(np.var(arr)) # 总体方差
# 运算结果:2.5
print(np.var(arr, ddof=1)) # 样本方差
# 运算结果:2
5. 标准差
np.std
函数用于计算数组的标准差。
标准差是方差的算术平方根,用来描述一组数据平均值的分散程度。
arr = np.arange(1,6)
print(np.std(arr)) # 标准差
# 运算结果:1.4142135623730951
总结
本文补充介绍了NumPy中一些基本的统计函数,包括中位数、均值、加权平均、方差和标准差。文章通过示例代码详细展示了如何使用np.median
、np.mean
、np.average
、np.var
和np.std
这些函数来计算数组的中位数、均值、加权平均值、方差和标准差,并解释了axis
和ddof
等参数的作用。