NumPy参考 >例行程序 >Statistics > numpy.average
numpy.
average
(a,axis = None,weights = None,return = False )[源] ¶计算沿指定轴的加权平均值。
包含要求平均值的数据的数组。如果a不是数组,则尝试进行转换。
要平均a的一个或多个轴。默认值axis = None将对输入数组的所有元素求平均值。如果轴为负,则从最后一个到第一个轴计数。
1.7.0版中的新功能。
如果axis是int的元组,则对元组中指定的所有轴而不是以前的单个轴或所有轴执行平均。
与所述值相关联的权重的阵列一个。中的每个值 一个根据其相关联的重量有助于平均。权重数组可以是1-D(在这种情况下,其长度必须是沿给定轴的a的大小)或与a相同的形状。如果weights = None,则假定a中的所有数据的权重等于1。一维计算为:
avg = sum(a * weights) / sum(weights)
权重的唯一约束是sum(weights)不得为0。
默认值为False。如果为True,则返回元组(average
,sum_of_weights),否则仅返回平均值。如果weights = None,sum_of_weights等于求平均值的元素数。
返回沿指定轴的平均值。当返回的是真,返回与平均的元组作为第一元件和配重的作为第二元件的总和。sum_of_weights与retval具有相同的类型。结果dtype遵循一般模式。如果权重是无,结果D型将是的一个,或者float64
如果一个是整体的。否则,如果权重不是None且a是非整数,则结果类型将是能够表示a和weights值的最低精度类型。如果一个碰巧是整数,以前的规则仍然适用,但结果dtype至少为float64
。
沿轴的所有权重均为零时。请参阅numpy.ma.average
以获取对此类错误更强健的版本。
当1D的长度权重是不一样的形状一 沿轴线。
例子
>>> data = np.arange(1, 5)
>>> data
array([1, 2, 3, 4])
>>> np.average(data)
2.5
>>> np.average(np.arange(1, 11), weights=np.arange(10, 0, -1))
4.0
>>> data = np.arange(6).reshape((3,2))
>>> data
array([[0, 1],
[2, 3],
[4, 5]])
>>> np.average(data, axis=1, weights=[1./4, 3./4])
array([0.75, 2.75, 4.75])
>>> np.average(data, weights=[1./4, 3./4])
Traceback (most recent call last):
...
TypeError: Axis must be specified when shapes of a and weights differ.
>>> a = np.ones(5, dtype=np.float128)
>>> w = np.ones(5, dtype=np.complex64)
>>> avg = np.average(a, weights=w)
>>> print(avg.dtype)
complex256