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.]