NumPy教程-numpy.std()在Python中的使用

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, or tuple of ints(可选)
这是沿着哪个轴计算标准差的轴。默认情况下,计算展平数组的标准差。如果它是int类型的元组,则会在多个轴上执行标准差,而不是像之前一样在单个轴或所有轴上执行。
dtype: data_type(可选)
这个参数定义了用于计算标准差的数据类型。对于整数类型数组,默认情况下数据类型是float64,对于浮点类型数组,数据类型与数组类型相同。
out: ndarray(可选)
这个参数定义了替代输出数组,用于存放结果。这个替代的ndarray与预期输出具有相同的形状。但是在必要时进行类型转换。
ddof: int(可选)
这个参数定义了自由度。在计算中使用N-ddof作为除数,其中N是元素的数量。默认情况下,这个参数的值设置为0。
keepdims: bool(可选)
这是一个可选的参数,当值为True时,会将减小的轴保留为结果中大小为1的维度。当它传递默认值时,它将允许通过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'。
- 我们将第一行的元素赋值为0.1,将第二行的元素赋值为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