NumPy numpy.average() 的使用

NumPy numpy.average() 的使用

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

语法

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

参数

x:array_like

此参数定义要计算平均值的源数组。如果“x”是一个数组,将尝试进行转换。

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

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

weights:array_like(可选)

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

returned:bool(可选)

默认情况下,此参数设置为False。如果设置为True,则返回平均值和权重之和的元组。如果设置为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() 函数的返回值。
  • 我们将列表 ‘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导入了numpy库。
  • 我们使用arange()和np.reshape()函数创建了一个名为’data’的数组。
  • 我们声明了一个名为’output’的变量,并将average()函数的返回值赋给它。
  • 我们在函数中传递了数组’data’,将轴设置为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”不同。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程