Numpy где на несортированный массив - PullRequest
0 голосов
/ 01 мая 2019

Я хочу найти индексы элементов в ухабистом массиве, который соответствует списку.Мой массив не отсортирован.На данный момент я использую приведенный ниже код

Y = np.array([ 2,2,1,1,3,1,3,2,-1,-1])
indcs = [np.where(Y == c)[0] for c in range(1,4)]

indcs

[array ([2, 3, 5]), array ([0, 1, 7]), array ([4, 6])]

Но я чувствую, что будет лучший подход для получения результата для каждого значения, которое нужно искать в виде строк, чем простая итерация с использованием цикла for.Кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Этот код может вам помочь.

    indices=[i for i,v in enumerate(Y.tolist()) if v in range(0,4)]
0 голосов
/ 01 мая 2019

Вот один путь от nonzero

np.nonzero(Y==np.arange(1,4)[:,None])
Out[877]: 
(array([0, 0, 0, 1, 1, 1, 2, 2], dtype=int64),
 array([2, 3, 5, 0, 1, 7, 4, 6], dtype=int64))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...