numpy.average

numpy.average(a, axis=None, weights=None, returned=False)[源代码]

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

参数
aarray_like

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

axis无、int或int的元组,可选

要平均的轴 a . 默认值axis=none将平均处理输入数组的所有元素。如果轴为负,则从最后一个轴到第一个轴计数。

1.7.0 新版功能.

如果轴是整数的元组,则对元组中指定的所有轴执行平均,而不是像以前那样对单个轴或所有轴执行平均。

weights阵列式,可选

与中的值关联的权重数组 a . 每一个值 a 根据其相关重量贡献平均值。权重数组可以是一维的(在这种情况下,其长度必须是 a 沿给定轴)或与 a .如果 weights=None ,然后输入所有数据 a 假设重量等于1。一维计算为:

avg = sum(a * weights) / sum(weights)

唯一的限制 weights 那是 sum(weights) 不能为0。

returned可选的布尔

False .如果 True 元组 (averagesum_of_weights )返回,否则只返回平均值。如果 weights=Nonesum_of_weights 等于取其平均值的元素数。

返回
[retval, [sum_of_weights]]数组类型或双

返回沿指定轴的平均值。什么时候? returnedTrue ,返回一个以平均值为第一个元素,权重和为第二个元素的元组。 sum_of_weights 与相同类型 retval . 结果数据类型遵循通用模式。如果 weights 为“无”,结果数据类型将为 afloat64 如果 a 是整数。否则,如果 weights 不是没有 a 是非整数的,结果类型将是能够表示两个值的最低精度类型 aweights .如果 a 碰巧是整数,前面的规则仍然适用,但结果数据类型至少是 float64 .

加薪
ZeroDivisionError

当沿轴的所有权重为零时。见 numpy.ma.average 对于这种类型错误的可靠版本。

TypeError

当长度为1d时 weights 与形状不同 a 沿着轴线。

参见

mean
ma.average

屏蔽数组的平均值--如果数据包含“缺少”值,则很有用

numpy.result_type

返回将numpy类型提升规则应用于参数后得到的类型。

实例

>>> 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