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=None,sum_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是非整数,则结果类型将是能够表示a和weights的值的最低精度类型。如果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]])