Найти индекс условного выбора Python NumPy - PullRequest
0 голосов
/ 30 октября 2018

У меня есть массив с номерами от 0 до 2:

myArray = np.random.randint(3, size=(255,255,1)).astype('uint8')

Теперь я хочу, чтобы все индексы имели значение 0.

например (220,15)

так что я могу сделать myArray[220][15] и получить 0.

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Обратите внимание, что ваш массив имеет три измерения, даже если третье может принимать только 0 в качестве индекса, поэтому ваши индексы будут иметь три значения.

Вы можете использовать n-мерный перечислитель numpy для перебора массива, получая список индексов, значение которого равно 0.

zero_indices = [index for index, value in np.ndenumerate(myArray) if value == 0]

Редактировать: ответ Slam должен быть намного быстрее, хотя.

0 голосов
/ 30 октября 2018

Вам нужно np.where без элементов и zip `em для предпочитаемого вами формата:

>>> indices = np.where(myArray == 0)
>>> element_wise = zip(*indices)
>>> next(element_wise)
(0, 3, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...