numpy.average #

麻木的。平均值( a , axis=None , Weights=None , returned=False , * , keepdims=<无 值> ) [来源] #

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

参数
类似数组

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

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

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

1.7.0 版本中的新增内容。

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

权重数组,可选

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

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

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

返回布尔值,可选

默认为False。如果True,则返回元组 ( average, sum_of_weights ),否则仅返回平均值。如果weights=Nonesum_of_weights相当于取平均值的元素数量。

keepdims布尔值,可选

如果将此设置为 True,则缩小的轴将作为大小为 1 的维度保留在结果中。使用此选项,结果将根据原始a正确广播。 注意: keepdims不适用于numpy.matrix 其方法不支持keepdims的类的实例或其他类。

1.23.0 版本中的新增功能。

返回
retval,[权重总和] array_type 或 double

返回沿指定轴的平均值。当返回True时,返回一个元组,其中平均值作为第一个元素,权重之和作为第二个元素。sum_of_weights与retval具有相同的类型。结果 dtype 遵循通用模式。如果权重为 None,则结果 dtype 将是a的数据类型,或者float64 如果a是整数。否则,如果weights不是None并且a是非整数,则结果类型将是能够表示aweights的值的最低精度类型。如果a恰好是整数,则之前的规则仍然适用,但结果 dtype 至少为float64

加薪
零除法错误

当沿轴的所有权重均为零时。请参阅 参考资料numpy.ma.average以获得对此类错误具有鲁棒性的版本。

类型错误

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

也可以看看

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

对于keepdims=True,以下结果具有形状 (3, 1)。

>>> np.average(data, axis=1, keepdims=True)
array([[0.5],
       [2.5],
       [4.5]])