当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy average用法及代码示例


本文简要介绍 python 语言中 numpy.average 的用法。

用法:

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

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

参数

a array_like

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

axis 无或int 或整数元组,可选

沿其平均的一个或多个轴。默认值,axis=None,将对输入数组的所有元素进行平均。如果轴为负数,则从最后一个轴计数到第一个轴。

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

weights 数组,可选

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

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

对权重的唯一限制是 sum(weights) 不能为 0。

returned 布尔型,可选

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

返回

retval, [sum_of_weights] array_type 或双

返回沿指定轴的平均值。什么时候返回True,返回一个元组,其中平均值作为第一个元素,权重之和作为第二个元素。sum_of_weights逆转录.结果 dtype 遵循一般模式。如果权重为无,结果 dtype 将是a, 或者float64如果a是积分。否则,如果权重不是 None 并且a是非整数的,结果类型将是能够表示两者值的最低精度类型a权重.如果a恰好是整数,之前的规则仍然适用,但结果 dtype 至少是float64.

抛出

ZeroDivisionError

当沿轴的所有权重为零时。请参阅 numpy.ma.average 以了解对此类错误具有鲁棒性的版本。

TypeError

当一维权重的长度与沿轴的形状不同时。

例子

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

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.average。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。