索引沿N维numpy数组的每个维度的每第n个元素

时间:2017-06-06 15:04:03

标签: python arrays numpy

在一个方面,可以这样做:

np.arange(12)[::3]

获得:

array([0, 3, 6, 9])

为N维做同样的事情的有效方法是什么?

例如,给定:

np.random.random((10, 15, 20))

如何获得每个维度中的每个第三个元素?

1 个答案:

答案 0 :(得分:3)

对于3d,你可以这样做:

a = np.random.random((10, 15, 20))

a[::3,::3,::3].shape
# (4, 5, 7)

a.shape
# (10, 15, 20)

对于任意维度,您可以使用slice

a[[slice(None,None,3)] * a.ndim].shape
# (4, 5, 7)