Найти индексы значений в родительском массиве с массивом фильтров - PullRequest
0 голосов
/ 28 января 2019

У меня есть два массива: один - это материнский массив, а другой - «фильтрующий массив».Материнский массив - это двумерный массив (около 65 строк × 147 столбцов).Фильтрующий массив - это массив, который имеет максимальное значение каждого столбца материнского массива (1 строка x 147 столбцов).Мне нужно получить совпадающие значения строк для максимальных значений.

Я пытался использовать

for index,k in np.ndenumerate(MotherArr):
    for val in FiltArr:
        if k == val:
            print(index) 

Но по какой-то причине я в основном получаю отпечаток val с последним напечатанным индексомпотом.

Любые идеи о том, как я мог бы заставить это работать?

1 Ответ

0 голосов
/ 28 января 2019

Вы можете просто взять argmax вашего массива вдоль оси:

np.random.seed(0)
A = np.random.randint(0, 10, (5, 5))

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

maxima = A.max(1)
# array([7, 9, 8, 8, 9])

maxima_args = A.argmax(1)
# array([4, 0, 2, 3, 1], dtype=int64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...