У меня есть трехмерный массив NumPy x
.Я хочу взять подмножество каждого среза по оси 0 (каждое подмножество имеет одну и ту же форму, но с индексами начала и конца, которые могут отличаться для каждого среза) и объединить их в отдельный трехмерный массив с фрагментами.Я могу добиться этого с помощью
import numpy as np
x = np.arange(24).reshape((3, 4, 2))
starts = [0, 2, 1]
ends = [2, 4, 3]
np.stack([x[i, starts[i]:ends[i]] for i in range(3)])
, но 1) есть ли способ сделать это за одну операцию, используя причудливую индексацию, и 2) это ускорит процесс?