косвенные numpy операции с индексами ... n-шаг удален? - PullRequest
0 голосов
/ 20 марта 2020

Очень часто мне нужно получить индексы элементов из numpy массивов, удаленных за один шаг. где я делаю операцию (где argsort, ...) я получаю индексы, затем я делаю вторую операцию, которая возвращает индексы на основе предыдущих индексов ...

Теперь я хочу получить через 2nd lvl индексирует работу с исходными данными и возвращает lvl1 indexes.

Fe

rows = np.where( ~np.all(ary == 0, axis=1) )
top5 = ary[rows].sum(axis=1).argsort()[:5]
Out[66]: array([ 2,  7, 22, 16, 33])
In [70]: rows[0][top5]
Out[70]: array([ 115,  313, 1232, 1063, 1550])

In [71]: ary[rows[0][top5]]


array([[0.4 , 0.  ],
       [0.4 , 0.  ],
       [0.4 , 0.  ],
       [0.42, 0.  ],
       [0.45, 0.  ]])

это упрощено, чтобы заставить его работать .. мне нужно сделайте также некоторую фильтрацию и получите промежуточные col-idxs

это выглядит слишком сложным для меня ... должен быть лучший способ ...

Как вы справляетесь с такими косвенными случаями ... проще ..

rows = np.where(...)
top5 = ary[rows].argsort()[:5]
ary[rows[0][top5]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...