Индексирование с помощью ndarray аналогично использованию кортежей - PullRequest
0 голосов
/ 14 сентября 2018

Я бы хотел проиндексировать мой 2d-array, используя 1d-array размера два, таким же образом, как будет использоваться кортеж или базовое индексирование. У меня есть индексы np.ndarrays для удобства, когда дело доходит до манипуляций, но в настоящее время я конвертирую их назад и вперед в кортежи.

a = np.zeros((5, 5))
ix = np.array([3, 2])

>>> a[3, 2]
0.0
>>> a[(3, 2)]
0.0
>>> a[ix]
array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])

Я пытался изменить форму массива несколькими способами, например, формы (2, 1) и (1, 2), но не повезло. Также не удалось найти запись из документации .

Есть ли способ?

1 Ответ

0 голосов
/ 14 сентября 2018

Передайте ix в качестве кортежа для индексации, а не массива / списка, поскольку последний будет указывать выбор строк, а не одну ячейку.

Так что либо a[tuple(ix)], либо a[(*ix,)]будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...