Python 中的 numpy.average()

2024 年 8 月 29 日 | 阅读 3 分钟

Python 的 numpy 模块提供了一个名为 numpy.average() 的函数,用于计算沿指定轴的加权平均值。

语法

参数

x: array_like

此参数定义了我们要计算其元素平均值的源数组。如果 'x' 是一个数组,则会尝试进行转换。

axis:int 或 None 或 int 元组(可选)

此参数定义了要计算平均值的轴。默认情况下,axis 设置为 None,这将计算源数组所有元素的平均值。当 axis 的值为负数时,计数从结束轴开始到开始轴。

weights:array_like(可选)

此参数定义一个包含与数组值关联的权重的数组。数组元素的每个值与其关联的权重一起构成平均值。加权数组可以是一维的,也可以与输入数组的形状相同。当数组元素没有关联的权重时,所有元素的权重都将被视为 1。

returned:bool(可选)

默认情况下,此参数设置为 False。如果将其设置为 True,则返回平均值和 sum_of_weights 的元组。如果为 False,则返回平均值。如果 weights 没有值,加权和等价于元素的数量。

返回值

retval,[sum_of_weights]:array_type 或 double

此函数返回平均值或平均值和 sum_of_weights,这取决于 returned 参数。

引发

ZeroDivisionError

当沿轴的所有权重都设置为零时,会引发此错误。

TypeError

当加权数组的长度与输入数组的形状不匹配时,会引发此错误。

示例 1

输出

[1, 2, 3, 4, 5]
3.0

在上面的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们创建了一个名为 'data' 的元素列表。
  • 我们声明了变量 'output' 并为其分配了 average() 函数的返回值。
  • 我们在函数中传递了列表 'data'
  • 最后,我们尝试打印 'data''output'

在输出中,它显示了列表元素的平均值。

示例 2

输出

5.666666666666667

示例 3

输出

array([[ 0,  1,  2],
       	[ 3,  4,  5],
       	[ 6,  7,  8],
       	[ 9, 10, 11]])
array([ 1.44444444,  4.44444444,  7.44444444, 10.44444444])

在上面的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们使用 arange()np.reshape() 函数创建了一个数组 'data'
  • 我们声明了变量 'output' 并为其分配了 average() 函数的返回值。
  • 我们在函数中传递了数组 'data',将 axis 设置为 1,并设置了加权数组。
  • 最后,我们尝试打印 'data''output'

在输出中,它显示了数组中每个列元素的平均值。

示例 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' 的形状不相同。


下一个主题numpy.pad()