NumPy 标准差
Python的numpy模块提供了一个名为numpy.std()的函数,用于计算沿指定轴的标准差。该函数返回数组元素的标准差。从平均值计算出的平均平方偏差的平方根被称为标准差。默认情况下,标准差是针对扁平化的数组进行计算的。通过使用x.sum()/N,通常计算出平均平方偏差,其中N=len(x)。
标准差=sqrt(mean(abs(x-x.mean( ))**2
语法
numpy.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<class numpy._globals._NoValue>)
参数
a:array_like
此参数定义要计算标准差的源数组的元素。
axis:None、int或int的元组(可选)
沿着要计算标准差的轴。默认情况下,计算平坦数组的标准差。如果它是一个int元组,则执行多个轴的标准差,而不是以前的单个轴或所有轴。
dtype:data_type(可选)
此参数定义用于计算标准差的数据类型。默认情况下,integer类型数组的数据类型为float64,而float类型数组的数据类型与数组类型相同。
out:ndarray(可选)
此参数定义结果要放置的备用输出数组。此备用ndarray与预期输出具有相同的形状。但在必要时进行类型转换。
ddof:int(可选)
此参数定义Delta自由度。计算中使用的除数为N-ddof,其中N是元素的数量。默认情况下,此参数的值设置为0。
keepdims:bool(可选)
它是可选的,当为true时,会将减少的轴保留为维度,其大小为一个结果。当传递默认值时,它将允许非默认值通过ndarray的子类的mean方法传递,但keepdims不会通过。而且,输出或结果将正确地传播到输入数组。
返回值
此函数将返回一个包含标准差的新数组。如果我们将’out’参数设置为None,它将返回输出数组的引用。
示例1
a=np.array([[1,4,7,10],[2,5,8,11]])
b=np.std(a)
b
输出:
3.391164991562634
在上面的代码中
- 我们使用别名 np 导入了 numpy 库。
- 我们通过 array() 函数创建了一个数组 ‘a’。
- 我们声明了变量 ‘b’,并将 std() 函数的返回值赋值给它。
- 我们将数组 ‘a’ 作为参数传递给函数。
- 最后,我们尝试打印 ‘b’ 的值。
在输出中,显示了包含标准差的数组。
示例2
a=np.array([[1,4,7,10],[2,5,8,11]])
b=np.std(a, axis=0)
b
输出:
array([0.5, 0.5, 0.5, 0.5])
示例3
a=np.array([[1,4,7,10],[2,5,8,11]])
b=np.std(a, axis=1)
b
输出:
array([3.35410197, 3.35410197])
示例4
import numpy as np
a = np.zeros((2, 512*512), dtype=np.float32)
a[1, :] = 1.0
a[0, :] = 0.1
b=np.std(a)
b
在上面的代码中
- 我们使用np作为别名导入了numpy。
- 我们使用np.zeros()函数创建了一个数据类型为np.float32的数组’a’。
- 我们将1行的元素赋值为0.1,将第2行的元素赋值为1.0。
- 我们将数组’a’传入了函数中。
- 最后,我们尝试打印 ‘b’ 的值。
输出结果显示了标准偏差,但可能不准确。
输出:
0.45000008
示例5
import numpy as np
a = np.zeros((2, 512*512), dtype=np.float32)
a[1, :] = 1.0
a[0, :] = 0.1
b=np.std(a ,dtype=np.float64))
b
结果:
0.4499999992549418