NumPy average() 函数
NumPy average() 函数计算数组中元素沿指定轴的加权平均值。加权平均值允许每个元素拥有自己的权重,从而修改每个元素对最终结果的贡献。
在统计学中,平均值(也称为均值)是数据值的总和除以数据点的数量。公式为均值 = (所有元素的总和) / (元素数量)。
对于一维数组,平均值是对所有元素计算的。对于多维数组,平均值是沿指定轴计算的。我们还可以提供一组权重来计算加权平均值,其中每个元素的贡献都由相应的权重值加权。
语法
以下是 NumPy average() 函数的语法 -
numpy.average(a, axis=None, weights=None, returned=False, *, keepdims=<no value>)
参数
以下是 NumPy average() 函数的参数 -
- a:输入数组,可以是 NumPy 数组、列表或标量值。
- axis(可选):计算平均值的轴。默认值为 None,表示对整个数组计算平均值。
- weights(可选):应用于元素的权重数组。如果为 None,则所有元素均视为相同。权重数组的长度必须与输入数组的大小匹配。
- keepdims(可选):如果为 True,则缩小后的维度在输出中保留为 1 的维度。默认值为 False。
- returned(可选):如果为 True,则函数将返回一个包含平均值和权重总和的元组。默认值为 False。
返回值
此函数返回输入数组的平均值。如果提供了 weights 参数,则函数将计算加权平均值。对于一维输入,结果为标量;对于多维输入,结果为数组。
示例
以下是使用 NumPy average() 函数计算数组平均值的基本示例 -
import numpy as np # 输入数组 x = np.array([1, 2, 3, 4, 5]) # 应用平均值 result = np.average(x) print("平均结果:", result)
输出
以下是上述代码的输出 -
平均结果:3.0
示例:加权平均值
如果指定轴上的所有权重均为零,则会导致 ZeroDivisionError 错误,因为计算加权平均值时会发生除以零的情况。如果权重的形状与输入数组不同,且 axis=None,则会导致 ValueError 错误。此外,如果权重数组的尺寸或形状与输入数组在指定轴上不一致,也会引发 ValueError 错误。
在下面的示例中,我们计算了一个数组的加权平均值,其中每个元素都被分配了不同的权重。我们使用了 average() 函数的 weights 参数来应用自定义权重 -
import numpy as np # 输入数组和权重 x = np.array([1, 2, 3, 4, 5]) weights = np.array([0.1, 0.2, 0.3, 0.2, 0.2]) # 应用加权平均值 result = np.average(x, weights=weights) print("加权平均结果:", result)
输出
以下是上述代码的输出 -
加权平均结果:3.2
示例:指定轴
average() 函数可以计算多维数组沿特定轴的平均值。以下示例中,我们计算了二维数组沿轴 0(列)和轴 1(行)的平均值 -
import numpy as np # 二维数组 x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 沿轴 0(列)应用平均值 result_axis0 = np.average(x, axis=0) # 沿轴 1(行)应用平均值 result_axis1 = np.average(x, axis=1) print("沿轴 0 的平均值:", result_axis0) print("沿轴 1 的平均值:", result_axis1)
输出
以下是上述代码的输出 -
沿轴 0 的平均值:[4. 5. 6.] 沿轴 1 的平均值:[2. 5. 8.]
示例:'returned' 参数的用法
returned 参数允许函数返回权重的平均值和总和。在以下示例中,我们计算加权平均值并返回两个值。
import numpy as np # 输入数组和权重 x = np.array([1, 2, 3, 4, 5]) weights = np.array([0.1, 0.2, 0.3, 0.2, 0.2]) # 应用加权平均值,返回值为 True result, sum_weights = np.average(x, weights=weights, returned=True) print("加权平均值:", result) print("权重总和:", sum_weights)
输出
以下是上述代码的输出 -
加权平均值: 3.2 权重总和:1.0
示例:绘制"average()"函数
在下面的示例中,我们绘制了average()函数的行为。我们通过导入 Numpy 和 matplotlib.pyplot 模块,计算并绘制了不同大小输入数组的平均值 -
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 100) y = np.full_like(x, np.average(x)) plt.plot(x, y, label="平均值") plt.title("平均值函数") plt.xlabel("输入") plt.ylabel("平均值") plt.legend() plt.grid() plt.show()
输出
该图展示了平均值在输入范围内的恒定性−

numpy_statistical_functions.html