Допустим, у меня есть массив A размером n x m x k и другой массив B размера n x m с индексами от 1 до k. Я хочу получить доступ к каждому n x m фрагменту A, используя индекс, указанный в этом месте в B, давая мне массив размером n x m.
Edit: очевидно, это не то, что я хочу!
[[Я могу добиться этого, используя take
вот так:
A.take (B)
]] конец редактирования
Можно ли этого добиться с помощью причудливой индексации?
Я бы подумал, что A [B]
даст тот же результат, но эти результаты
в массиве размером n x m x m x k (что я действительно не понимаю).
Причина, по которой я не хочу использовать take
, заключается в том, что я хочу присвоить этой части что-то вроде
A [B] = 1
Единственное рабочее решение, которое У меня пока есть
A.reshape (-1, k) [np.arange (n * m), B.ravel ()]. Reshape (n, m)
, но, безусловно, должен быть более простой способ?