NumPy 函数

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