我需要沿数组(1)的时间轴的平均值。
问题:它不会是沿该轴的所有值的平均值,而是从数组 (2) 中给定的索引开始的子集。
我正在使用的数组:
(array1) 3 axes: time, x, y
array([[[ 820, 820, 720, 720],
[ 860, 860, 500, 500],
[ 860, 860, 500, 500],
[ 860, 860, 500, 500]],
[[5980, 5980, 4760, 4760],
[7500, 7500, 7940, 7940],
[7500, 7500, 7940, 7940],
[7500, 7500, 7940, 7940]],
[[ 740, 740, 440, 440],
[1240, 1240, 1140, 1140],
[1240, 1240, 1140, 1140],
[1240, 1240, 1140, 1140]],
[[3200, 3200, 7600, 7600],
[ 900, 900, 400, 400],
[ 900, 900, 400, 400],
[ 900, 900, 400, 400]]])
(array2) 2 axes: x, y
array([[ 1, 2, 1, 1],
[ 1, 0, 3, 3],
[ 4, 0, 2, 2],
[ 4, 0, 1, 2]])
为了进一步说明这个例子:
array1 中的值表示位置 x/y 每天的降雨量。array2 中的值表示从哪一天开始需要计算位置 x/y 的平均值。
查看第一个单元格,我们将从计算中排除第一天,因为 array2[0,0] = 1。所以我们的结果将是 np.mean(array1[1:, 0, 0]) = 3306.67。
我无法理解的是如何根据数组 2 为每个单元格指定子集。我知道我可以沿任何轴使用 np.mean,但是如何从计算中动态排除值(切片数组) ?