您可以使用np.split
分裂您的數組,然後使用np.sum
來總結您的項目沿着第二軸:
np.sum(np.split(my_array,3),axis=1)
演示:
>>> a=np.arange(270).reshape(30,3,3)
>>> np.sum(np.split(a,3),axis=1)
array([[[ 405, 415, 425],
[ 435, 445, 455],
[ 465, 475, 485]],
[[1305, 1315, 1325],
[1335, 1345, 1355],
[1365, 1375, 1385]],
[[2205, 2215, 2225],
[2235, 2245, 2255],
[2265, 2275, 2285]]])
還要注意的是,如果你有一個不同的切片長度你可以通過你的片尾np.split
功能:
>>> new=np.sum(np.split(a,[10,20,]),axis=1)
>>> new
array([[[ 405, 415, 425],
[ 435, 445, 455],
[ 465, 475, 485]],
[[1305, 1315, 1325],
[1335, 1345, 1355],
[1365, 1375, 1385]],
[[2205, 2215, 2225],
[2235, 2245, 2255],
[2265, 2275, 2285]]])
這些*範圍*的範圍是否相同? – Divakar