NumPy var() 函数
NumPy var() 函数计算沿指定轴的方差。此函数返回数组元素的方差,即分布扩散度的度量。默认情况下,方差针对展平数组计算,否则针对指定轴计算。
在统计学中,方差 是数据集扩散度的度量。其公式为 var = sum((x_i - mean)^2) / N,其中 x_i 表示每个数据点,mean 表示数据的平均值,N 表示数据点的数量。
对于一维数组,方差针对所有元素计算。对于多维数组,方差是沿指定轴计算的。
语法
以下是 NumPy var() 函数的语法 -
numpy.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>, where=<no value>, mean=<no value>, Correction=<no value>)
参数
以下是 NumPy var() 函数的参数 -
- a:输入数组或可转换为数组的对象。它可以是 NumPy 数组、列表或标量值。
- axis(可选):计算方差的一个或多个轴。默认值为 None,表示计算整个数组的方差。
- dtype(可选):用于计算方差的数据类型。如果为 None,则从输入数组推断得出。
- out(可选):存储结果的位置。如果提供,则必须与预期输出具有相同的形状。
- ddof(可选):自由度增量。计算中使用的除数为 N - ddof,其中 N 是元素的数量。默认值为 0。
- keepdims(可选):如果为 True,则缩小后的维度在输出中保留为 1 的尺寸。默认值为 False。
- where(可选):一个布尔数组,指定要包含在计算中的元素。
- mean(可选):提供平均值以防止重复计算。平均值的形状应与使用 keepdims=True 计算的结果一致。
- correction(可选):控制方差的计算,并提供修改自由度等选项。
返回值
此函数返回输入数组的方差。如果输入是一维的,则结果为标量;如果输入是多维的,则结果为数组。
示例
以下是使用 NumPy var() 函数计算数组方差的基本示例 -
import numpy as np # 输入数组 x = np.array([1, 2, 3, 4, 5]) # 应用 var result = np.var(x) print("方差结果:", result)
输出
以下是上述代码的输出 -
方差结果:2.0
示例:指定轴
var() 函数可以计算多维数组沿特定轴的方差。在以下示例中,我们计算了二维数组沿轴 0(列)和轴 1(行)的方差 -
import numpy as np # 二维数组 x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 沿轴 0(列)应用变量 result_axis0 = np.var(x, axis=0) # 沿轴 1(行)应用变量 result_axis1 = np.var(x, axis=1) print("沿轴 0 的方差:", result_axis0) print("沿轴 1 的方差:", result_axis1)
输出
以下是上述代码的输出 −
沿轴 0 的方差:[6. 6. 6.] 沿轴 1 的方差:[0.66666667 0.66666667 0.66666667]
示例:'ddof' 参数的用法
ddof(自由度增量) 参数用于调整方差计算中使用的除数。默认情况下,ddof=0,但可以将其设置为其他值以自定义计算。在以下示例中,我们使用 ddof=1 计算了方差 −
import numpy as np # 输入数组 x = np.array([1, 2, 3, 4, 5]) # 应用 var,ddof=1 result = np.var(x, ddof=1) print("ddof=1 时的方差:", result)
输出
以下是上述代码的输出 -
ddof=1 时的方差:2.5
示例:绘制 'var()' 函数
在下面的示例中,我们绘制了 var() 函数的行为。我们通过导入 NumPy 和 matplotlib.pyplot 模块,计算并绘制了不同大小输入数组的方差。-
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y = np.var(x) plt.plot(x, np.full_like(x, y), label="方差") plt.title("方差函数") plt.xlabel("输入") plt.ylabel("方差值") plt.legend() plt.grid() plt.show()
输出
该图展示了方差值在输入范围内的恒定性质−

numpy_statistical_functions.html