NumPy mean() 和 average()
平均值是一组观察值的中心值。平均值可以有多种形式,例如几何平均值,调和平均值,算术平均值。在统计领域,算术平均值和平均值可以互换使用。它们都使用相同的公式计算,即总观测值之和除以观测值总数。
在 Python 中,我们有两个函数可以计算算术平均值或平均值。这些是 NumPy
模块中可用的 numpy.mean()
和 numpy.average()
函数。
这两个函数均可用于计算算术平均值或平均值,如下所示:
import numpy as np
arr = np.array([12,15,18,19,20])
print("Average Function: ",np.average(arr))
print("Type returned: ", type(np.average(arr)))
print("Mean Function: ", np.mean(arr))
print("Type returned: ", type(np.mean(arr)))
输出:
Average Function: 16.8
Type returned: <class 'numpy.float64'>
Mean Function: 16.8
Type returned: <class 'numpy.float64'>
请注意,它们甚至都以相同的类型返回最终输出,并且看起来这两个函数是等效的。
但是,它们之间有一些区别。numpy.average()
函数还可以计算数组的加权平均值,这在 numpy.mean()
函数中是不可能的。为此,我们只需将权重作为参数传递给函数,如下所示:
import numpy as np
arr = np.array([12,15,18,19,20])
arr_w = np.array([0.1,0.1,0.1,0.2,0.5])
print("Weighted Average Function: ",np.average(arr,weights = arr_w))
输出:
Weighted Average Function: 18.3
另一个显着区别是 np.mean()
函数可以具有许多其他参数,例如 dtype
,out
,where
,keepdims
等,而这些参数在 np.average()
函数中是没有的。
这样的附加参数可能是有益的。例如,我们可能会遇到这样一种情况,要计算平均值的对象类型是未知的或不明确的。在这种情况下,我们可以使用 dtype
参数指定类型。out
参数可以指定我们是否要将结果存储在备用数组中。我们还可以使用 axis
参数设置要沿其计算平均值的轴。以下代码显示了 np.mean()
函数中某些参数的用法。
import numpy as np
arr = np.array([[12 ,15 ,18 ,19 ,20],
[10, 16, 7, 18, 20],
[20, 12, 24, 11, 14]])
x = np.arange(3)
print("Mean Function: ", np.mean(arr, dtype = int, axis = 1, out = x))
print("Output array: ", x)
输出:
Mean Function: [16 14 16]
Output array: [16 14 16]
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn