NumPy std() 函数用于计算沿指定轴的标准差。标准差定义为与平均值的平方偏差的平均值的平方根。从数学上讲,它可以表示为:
std = sqrt(mean(abs(x - x.mean())**2))
语法
numpy.std(a, axis=None, dtype=None, out=None, keepdims=<no value>)
参数
a | 必需。 指定输入数组。 |
axis | 可选。 指定计算标准差所沿的一个或多个轴。默认值 axis=None,计算展平数组的标准差。 |
dtype | 可选。 指定计算标准差时使用的类型。对于整数类型的数组,默认为 float64,对于浮点类型的数组,它与数组类型相同。 |
out | 可选。 指定放置结果的输出数组。它必须具有与预期输出相同的形状。 |
keepdims | 可选。 如果将此设置为 True,则缩小的轴将作为大小为 1 的维度保留在结果中。使用此选项,结果将针对输入数组正确广播。 |
返回值
如果out=None,返回包含标准差的数组,否则返回对输出数组的引用。
示例:展平数组的标准差
在下面的示例中,std() 函数用于计算数组中存在的所有值的标准差。
import numpy as np
Arr = np.array([[1,2],[3, 4]])
print("Array is:")
print(Arr)
#所有值的标准差
print("\n所有值的标准差:", np.std(Arr))
上述代码的输出将是:
Array is:
[[1 2]
[3 4]]
所有值的标准差: 1.118033988749895
示例:带有轴的 std()参数
当提供 axis 参数时,将计算指定轴上的标准差,如下例所示。
import numpy as np
Arr = np.array([[10,20,30],[70,80,90]])
print("Array is:")
print(Arr)
#沿轴的标准差=0
print("\n沿轴的标准差=0")
print(np.std(Arr, axis=0))
#沿轴的标准差=1
print("\n沿轴的标准差=1")
print(np.std(Arr, axis=1))
上述代码的输出将是:
Array is:
[[10 20 30]
[70 80 90]]
沿轴的标准差=0
[30. 30. 30.]
沿轴的标准差=1
[8.16496581 8.16496581]
示例:带有 dtype 参数的 std()
计算 float64 中的标准差可提供更准确的结果。考虑以下示例。
import numpy as np
Arr = np.array([1, 10, 100, 1000])
#使用 float32 的标准差
print("使用 float32 的标准差:", np.std(Arr, dtype=np.float32))
#使用 float64 的标准差
print("使用 float64 的标准差:", np.std(Arr, dtype=np.float64))
上述代码的输出将是:
使用 float32 的标准差: 418.78418
使用 float34 的标准差: 418.7841777097124