您可以使用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