Python 的 numpy 模块提供了一个名为 numpy.average() 的函数,用于计算沿指定轴的加权平均值。
用法:
numpy.average(a, axis=None, weights=None, returned=False)
参数:
x:数组
此参数定义了我们要计算其元素平均值的源数组。如果 'x' 是一个数组,则将尝试转换。
轴:整数或无或整数元组(可选)
此参数定义了将沿其计算平均值的轴。默认情况下,轴设置为无,这将计算源数组所有元素的平均值。当轴的值为负时,从结束轴开始计数到开始轴。
权重:数组(可选)
此参数定义一个包含与数组值关联的权重的数组。数组元素的每个值一起根据其关联的权重进行平均值。加权数组可以是一维的,也可以是与输入数组相同的形状。当没有与数组元素关联的权重时,所有元素的权重将被视为 1。
返回:布尔(可选)
默认情况下,此参数设置为 False。如果我们将其设置为 True,则返回一个由 average 和 sum_of_weights 组成的元组。如果为 False,则返回平均值。如果没有权重值,则加权和等于元素的数量。
返回值:
retval, [sum_of_weights]:array_type 或双倍
此函数返回取决于返回参数的平均值或平均值和 sum_of_weights。
raise :
零分误差
当沿轴的所有权重都设置为零时,会引发此错误。
TypeError
当加权数组的长度与输入数组的形状不同时,会引发此错误。
范例1:
import numpy as np
data = list(range(1,6))
output=np.average(data)
data
output
输出:
[1, 2, 3, 4, 5] 3.0
在上面的代码中:
- 我们已经导入了别名为 np.
- 我们创建了一个元素列表 'data'。
- 我们已经声明了变量 'output' 并赋值了 average() 函数的返回值。
- 我们已经在函数中传递了列表 'data'。
- 最后,我们尝试打印 'data' 和 'output'
在输出中,它显示了列表元素的平均值。
范例2:
import numpy as np
output=np.average(range(1,16), weights=range(15,0,-1))
output
输出:
5.666666666666667
范例3:
import numpy as np
data=np.arange(12).reshape((4,3))
output = np.average(data, axis=1, weights=[1./4, 3./4, 5./4])
data
output
输出:
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) array([ 1.44444444, 4.44444444, 7.44444444, 10.44444444])
在上面的代码中:
- 我们已经导入了别名为 np.
- 我们使用 arange() 和 np.reshape() 函数创建了一个数组 'data'。
- 我们已经声明了变量 'output' 并赋值了 average() 函数的返回值。
- 我们在函数中传递了数组'data',设置axis为1,并给数组加权。
- 最后,我们尝试打印 'data' 和 'output'
在输出中,它显示了数组中每列元素的平均值。
范例4:
import numpy as np
data=np.arange(12).reshape((4,3))
data
np.average(data, weights=[1./4, 3./4, 5./4])
输出:
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\site-packages\numpy\lib\function_base.py", line 406, in average "Axis must be specified when shapes of data and weights." TypeError:Axis must be specified when shapes of data and weights differ.
注意:输出显示类型错误:'当数据和权重的形状不同时必须指定轴',因为 'weights' 数组的形状与输入数组 'data' 的形状不同。
相关用法
- Python numpy.atleast_2d()用法及代码示例
- Python numpy.angle()用法及代码示例
- Python numpy.asscalar()用法及代码示例
- Python numpy.asmatrix()用法及代码示例
- Python numpy.absolute()用法及代码示例
- Python numpy.any()用法及代码示例
- Python numpy.argwhere()用法及代码示例
- Python numpy.arccosh()用法及代码示例
- Python numpy.amax()用法及代码示例
- Python numpy.arcsinh()用法及代码示例
- Python numpy.array_repr()用法及代码示例
- Python numpy.array_str()用法及代码示例
- Python numpy.apply_along_axis()用法及代码示例
- Python numpy.argmax()用法及代码示例
- Python numpy.arctan()用法及代码示例
- Python numpy.around()用法及代码示例
- Python numpy.array()用法及代码示例
- Python numpy.arccos()用法及代码示例
- Python numpy.all()用法及代码示例
- Python numpy.allclose()用法及代码示例
注:本文由纯净天空筛选整理自 numpy.average() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。