使用numpy.digitize
函数可以将NumPy数组拆分为多个bin。然后,可以使用numpy.bincount
函数来计算每个bin中元素的和,以及numpy.bincount
函数中的weights
参数来计算每个bin的加权总和。最后,将加权总和除以每个bin中元素的个数,即可得到每个bin的平均值。
以下是一个示例代码:
import numpy as np
# 创建一个示例的NumPy数组
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# 定义bin的边界
bins = np.array([0, 3, 6, 10])
# 使用digitize函数拆分数组为bin
indices = np.digitize(arr, bins)
# 计算每个bin的平均值
bin_avg = np.bincount(indices, weights=arr) / np.bincount(indices)
# 打印每个bin的平均值
for i in range(1, len(bin_avg)):
print(f"Bin {i}: {bin_avg[i]}")
上述代码的输出结果将会是:
Bin 1: 2.0
Bin 2: 4.5
Bin 3: 8.0
在这个例子中,我们将数组arr
拆分为3个bin,即[0, 3), [3, 6), [6, 10)。然后,我们计算每个bin中元素的平均值,得到了每个bin的平均值分别为2.0、4.5和8.0。
领取专属 10元无门槛券
手把手带您无忧上云