如何用N个维度屏蔽“裁剪”的多维numpy数组?

时间:2019-03-29 04:37:22

标签: python arrays python-3.x numpy

说我有一个数组a,它可以是N维的,但为简单起见,我们说它:

a = np.array([[0,1,2],
             [3,4,5]])

我也有一个长度为N的遮罩或农作物(我不知道专有名词),所以在这种情况下,类似:

b = [1,2]

如何“裁剪”数组,使其:

a = a[:b]

将切片与以下内容相同:

a = a[:1,:2]

但是不管N的值如何都可以。

1 个答案:

答案 0 :(得分:2)

使用slice表示法-

a[tuple([slice(None,bi) for bi in b])]

或以其简写np.s_-

a[tuple([np.s_[:bi] for bi in b])]