如何为每一行广播不同的切片?

How to broadcast different slices for each row?

我正在对一个 numpy 二维数组进行操作,并试图找到某种方法来访问每行的不同切片。最好以我传递如下切片数组的方式利用 numpy 广播:

A = np.array([[1,2,3,4,5],[1,4,9,16,25],[1,8,27,64,125]])
A[[2:,3:,4:]]
>>> array([[3,4,5],[16,25],[125]])

我知道我上面写的是假的,但你明白了。我想传入一个数组 t = [2,3,4] 以便该数组的每个成员(由 t_i 表示)导致 t_i:(该成员和冒号之后) .

谢谢

广播可能做不到你想要的。但是列表理解可能有效:

np.array([a[i+2:] for i,a in enumerate(A)])
#array([array([3, 4, 5]), array([16, 25]), array([125])], dtype=object)