numpy.average
numpy.average(a, axis=None, weights=None, returned=False) [source]
计算沿指定轴的加权平均值。
参数 : | a :array_like 包含要求平均值的数据的数组。如果a不是数组, 则尝试进行转换。 axis : 平均a的一个或多个轴。 默认值 将对输入数组的所有元素求平均值。 如果轴为负,则从最后一个轴开始计数。 1.7.0版中的新功能。 如果axis是int的元组, 则对元组中指定的所有轴, 而不是以前的单个轴或所有轴执行平均。 weights :array_like, 可选 与a中的值相关联的权重数组。 a中的每个值根据其关联的权重对平均值作出贡献。 weights数组可以是1-D(在这种情况下, 它的长度必须是沿着给定轴的a的大小), 也可以是与a相同的形状。如果 那么假设a中的所有数据的权值都等于1。一维计算为: avg = sum(a * weights) / sum(weights) returned :bool, 可选 默认值为False。 如果为True, 则返回元组(平均值,sum_of_weights), 否则仅返回 如果weights = None, sum_of_weights等于采用平均值的元素数。 |
返回值 : | retval, [sum_of_weights] :array_type 或 double 返回沿指定轴的平均值。当返回True时, 返回一个以平均值为第一个元素, 权重之和为第二个元素的元组。 sum_of_weights与retval具有相同的类型。 结果dtype遵循一般模式。如果weights为None, 则结果dtype将为a,或者如果a为整数, 则为 则结果类型将是能够表示a和权重的值的最低精度类型。 如果a碰巧是整数,则以前的规则仍然适用, 但结果dtype至少为float64。 |
Raises : | ZeroDivisionError 沿轴的所有权重均为零时。 请参阅 以获取针对此类错误的可靠版本。 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