NumPy 函数

NumPy average() 函数用于计算沿指定轴的加权平均值。使用该函数的语法如下:

语法

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

参数

a必填。 指定包含要平均的数据的数组。如果 a 不是数组,则尝试转换。
axis可选。 指定对 a 进行平均的一个或多个轴。默认值 axis=None,将对输入数组的所有元素进行平均。如果 axis 为负数,则从最后一个轴到第一个轴计数。
weights可选。 指定与a中的值关联的权重数组。权重数组可以是一维的(在这种情况下,其长度必须是 a 沿给定轴的大小),也可以与 a 具有相同的形状。如果权重=无,则假定 a 中的所有数据的权重等于 1。
returned
可选。 默认为False。如果为 True,则返回元组(平均值、sum_of_weights),否则仅返回平均值。

返回值

returned为False时,返回沿指定轴的平均值。

当returned设置为True时,返回一个元组,其中平均值作为第一个元素,权重之和作为第二个元素。

异常

  • 引发 ZeroDivisionError 异常,当沿轴的所有权重均为零时。
  • 引发 TypeError 异常,当一维权重的长度不相同时作为沿轴的形状。

示例:所有值的平均值

在下面的示例中,使用了average()函数计算数组中所有值的平均值。

import numpy as np
Arr = np.array([[1,2],[3, 4]])

print("Array is:")
print(Arr)

#所有值的平均值
print("\n平均值:", np.average(Arr)) 

上述代码的输出将是:

Array is:
[[1 2]
 [3 4]]

平均值: 2.5 

示例:带有轴参数的average()

当提供轴参数时,在指定轴上执行平均。考虑以下示例。

import numpy as np
Arr = np.array([[10,20,30],[70,80,90]])

print("Array is:")
print(Arr)

#沿轴平均=0
print("\n沿轴平均=0")
print(np.average(Arr, axis=0))

#沿轴平均=1
print("\n沿轴平均=1")
print(np.average(Arr, axis=1)) 

上述代码的输出将是:

Array is:
[[10 20 30]
 [70 80 90]]

沿轴平均=0
[40. 50. 60.]

沿轴平均=1
[20. 80.] 

示例:带有权重参数的average()

In在下面的示例中,提供了权重数组来计算沿指定轴的加权平均值。

import numpy as np
Arr = np.array([[10,20],[80,90]])
w = np.array([0.4, 0.6])
print("Array is:")
print(Arr)

#沿轴平均=0
print("\n沿轴平均=0")
print(np.average(Arr, axis=0, weights=w))

#沿轴平均=1
print("\n沿轴平均=1")
print(np.average(Arr, axis=1, weights=w)) 

上述代码的输出将是:

Array is:
[[10 20]
 [80 90]]

沿轴平均=0
[52. 62.]

沿轴平均=1
[16. 86.]