NumPy std() 函数
NumPy std() 函数计算数组中元素沿指定轴的标准差。它返回标准差,用于衡量分布的散布程度或离散程度。默认情况下,标准差是针对扁平数组计算的,但也可以沿指定轴计算。
在统计学中,标准差是方差的平方根。公式为 std = sqrt(sum((x_i - mean)^2) / N),其中 x_i 表示每个数据点,mean 表示数据的平均值,N 表示数据点的数量。
对于一维数组,标准差是针对所有元素计算的。对于多维数组,标准差沿指定轴计算。
语法
以下是 NumPy std() 函数的语法 -
numpy.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>, where=<no value>, mean=<no value>, Correction=<no value>)
参数
以下是 NumPy std() 函数的参数 -
- a:输入数组或可转换为数组的对象。它可以是 NumPy 数组、列表或标量值。
- axis(可选):计算标准差的一个或多个轴。默认值为 None,表示计算整个数组的标准差。
- dtype(可选):用于计算标准差的数据类型。如果为 None,则从输入数组推断得出。
- out(可选):存储结果的位置。如果提供,则必须与预期输出具有相同的形状。
- ddof(可选):自由度增量。计算中使用的除数为 N - ddof,其中 N 是元素的数量。默认值为 0。
- keepdims(可选):如果为 True,则缩小后的维度在输出中保留为 1 的尺寸。默认值为 False。
- where(可选):要包含在标准差中的元素
- mean(可选):提供平均值以防止重复计算。平均值应具有与 keepdims=True 时计算的形状相同的形状。计算平均值的轴应与调用此 std 函数时使用的轴相同。
- correction(可选):此函数计算数组中元素的标准差,衡量数据围绕平均值的离散度或散布程度,并可选择沿指定轴计算、应用自由度("ddof")以及保留维度。
返回值
此函数返回输入数组的标准差。如果输入是一维的,则结果为标量;如果输入是多维的,则结果为数组。
示例
以下是使用 NumPy std() 函数计算数组标准差的基本示例 -
import numpy as np # 输入数组 x = np.array([1, 2, 3, 4, 5]) # 应用标准差 result = np.std(x) print("标准差结果:", result)
输出
以下是上述代码的输出 -
标准差结果: 1.4142135623730951
示例:指定轴
std() 函数可以计算多维数组沿特定轴的标准差。在以下示例中,我们计算了二维数组沿轴 0(列)和轴 1(行)的标准差 -
import numpy as np # 二维数组 x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 沿轴 0(列)应用标准差 result_axis0 = np.std(x, axis=0) # 沿轴 1(行)应用标准差 result_axis1 = np.std(x, axis=1) print("沿轴 0 的标准差:", result_axis0) print("沿轴 1 的标准差:", result_axis1)
输出
以下是上述代码的输出 -
沿轴 0 的标准差:[2.44948974 2.44948974 2.44948974] 沿轴 1 的标准差:[0.81649658 0.81649658 0.81649658]
示例:'ddof' 参数的使用
ddof(自由度增量) 参数允许我们调整计算的自由度。默认情况下,ddof=0,但我们可以将其设置为其他值,以更改计算中使用的除数。在以下示例中,我们计算了 ddof=1 时的标准差 -
import numpy as np # 输入数组 x = np.array([1, 2, 3, 4, 5]) # 应用 ddof=1 时的标准差 result = np.std(x, ddof=1) print("ddof=1 时的标准差:", result)
输出
以下是上述代码的输出 -
ddof=1 时的标准差:1.5811388300841898
示例:绘制 'std()'函数
在下面的示例中,我们绘制了 std() 函数的行为。我们通过导入 Numpy 和 matplotlib.pyplot 模块,计算并绘制了不同大小输入数组的标准差。-
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y = np.std(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