是否有可能在numpy中使用高级列表切片并仍然可以获得视图?

che*_*ire 6 python numpy

换句话说,我想做点什么

A[[-1, 0, 1], [2, 3, 4]] += np.ones((3, 3))
Run Code Online (Sandbox Code Playgroud)

代替

A[-1:3, 2:5] += np.ones((1, 3))
A[0:2, 2:5] += np.ones((2, 3))
Run Code Online (Sandbox Code Playgroud)

Jus*_*eel 3

如果我理解正确的话,您可以执行以下操作:

A[[[-1],[0],[1]],[2,3,4]] += np.ones((3, 3))
Run Code Online (Sandbox Code Playgroud)

然而,numpy 人员创建了一个函数 ix_,以使其更容易一些:

A[np.ix_([-1,0,1],[2,3,4])] += np.ones((3, 3))
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。