Допустим, у меня есть двумерный массив с формой (2, 2), содержащий индексы
x = np.array([[2, 0], [3, 1]])
Что я хотел бы сделать, это создать трехмерный массив с формой (2, 2, 4), который имеет значения 1 вдоль третьей оси, и их положение задается как x
, поэтому:
y = np.zeros(shape=(2,2,4))
myfunc(array=y, indices=x, axis=2)
array([[[0, 0, 1, 0],
[1, 0, 0, 0]],
[[0, 0, 0, 1],
[0, 1, 0, 0]]])
Пока что я не нашел никакого метода индексации для этого. Цикл for
может быть в состоянии сделать это, но я уверен, что есть более быстрый, векторизованный метод.