📜  Python numpy.average()

📅  最后修改于: 2020-10-27 08:50:52             🧑  作者: Mango

Python的numpy.average()

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

句法:

numpy.average(a, axis=None, weights=None, returned=False)

参数:

x:类似数组

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

轴:整数或无或整数元组(可选)

此参数定义将沿其计算平均值的轴。默认情况下,该轴设置为“无”,它将计算源数组中所有元素的平均值。当轴的值为负时,计数从起点到起点开始。

权重:array_like(可选)

此参数定义一个数组,其中包含与数组值关联的权重。数组元素的每个值一起根据其关联的权重得出平均值。加权数组可以是一维数组,也可以是与输入数组相同的形状。如果没有与数组元素关联的权重,则所有元素的权重将被视为1。

返回:bool(可选)

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

返回值:

retval,[sum_of_weights]:array_type或double

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

筹款:

ZeroDivisionError

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

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的numpy。
  • 我们创建了一个元素列表‘data’
  • 我们已经声明了变量‘output’并分配了average()函数的返回值。
  • 我们已经在函数传递了列表“数据”
  • 最后,我们尝试print“数据”“输出”

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

范例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的numpy。
  • 我们已经创建了一个阵列“数据”使用人气指数()np.reshape()函数。
  • 我们已经声明了变量‘output’并分配了average()函数的返回值。
  • 我们已经传递了数组‘data’ ,将axis设置为1,并在函数加权了数组。
  • 最后,我们尝试print“数据”“输出”

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

范例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 "", line 1, in 
  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.

注意:输出显示类型错误:“当数据的形状和权重不同时必须指定轴”,因为“权重”数组的形状与输入数组“数据”不同。