avg = sum(a * weights) / sum(weights)
权重的唯一约束是sum(weights)不得为0。
返回布尔值,可选默认值为False。如果为True,则返回元组(average
,sum_of_weights),否则仅返回平均值。如果weights = None,sum_of_weights等于求平均值的元素数。
retval,[sum_of_weights] array_type或double返回沿指定轴的平均值。当返回的是真,返回与平均的元组作为第一元件和配重的作为第二元件的总和。sum_of_weights与retval具有相同的类型。结果dtype遵循一般模式。如果权重是无,结果D型将是的一个,或者float64
如果一个是整体的。否则,如果权重不是None且a是非整数,则结果类型将是能够表示a和weights值的最低精度类型。如果一个碰巧是整数,以前的规则仍然适用,但结果dtype至少为float64
。
ZeroDivisionError沿轴的所有权重均为零时。请参阅numpy.ma.average
以获取对此类错误更强健的版本。
TypeError当1D的长度权重是不一样的形状一
>>> np.average(data)
>>> np.average(np.arange(1, 11), weights=np.arange(10, 0, -1))
>>> data = np.arange(6).reshape((3,2))
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