numpy.average

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.average.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.average(a, axis=None, weights=None, returned=False)[source]

沿指定轴计算加权平均值。

参数:

a:array_like

包含要平均的数据的数组。如果a不是数组,则尝试进行转换。

axis:int,可选

用于平均a的轴。如果,则对平展的数组进行平均。

权重:array_like,可选

a中的值相关联的权重数组。a中的每个值根据其关联权重对平均值作出贡献。权数数组可以是1-D(在这种情况下,其长度必须是沿给定轴的a的大小)或与a相同的形状。如果权重=无,则假设a中的所有数据具有等于1的权重。

返回:bool,可选

默认值为False如果True,则返回元组(averagesum_of_weights),否则只返回平均值。如果权重=无,则sum_of_weights等于采用平均值的元素的数量。

返回:

average,[sum_of_weights]:array_type或double

沿指定轴返回平均值。当返回的是True时,返回一个元组,其中平均值作为第一个元素,权重的和作为第二个元素。如果a是整数类型,则返回类型为Float,否则返回类型与a的类型相同。 sum_of_weightsaverage具有相同的类型。

上升:

ZeroDivisionError

当沿轴的所有权重为零时。有关此类型错误的鲁棒版本,请参见numpy.ma.average

TypeError

当1D 权重的长度与沿着轴的a的形状不相同时。

也可以看看

mean

ma.average
masked数组的平均值 - 如果您的数据包含“missing”值,则非常有用

例子

>>> data = range(1,5)
>>> data
[1, 2, 3, 4]
>>> np.average(data)
2.5
>>> np.average(range(1,11), weights=range(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.