Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Сравнение двух массивов c помощью numpy

#python #numpy


Необходимо сравнить два массива: если элементы на четных индексах первого массива
больше второго, то тогда true, для нечетных индексов тоже самое. В итоге должен быть
получен новый "бурливый" массив true/false.

a = np.array([1,2,3])
b = np.array([5,0,1])


Как реализовать данное сравнение? С помощью np.where?
    


Ответы

Ответ 1



Проверяем четность индекса и в зависимости от результата выбираем одно из условий: In [57]: res = np.where( np.arange(1, len(a)+1) % 2 == 0, a > b, b > a ) Результат: In [58]: res Out[58]: array([ True, False, True, True, False])

Ответ 2



Допустимо ли создать массив индексов? Индексы начинаются с 1? import numpy as np A = np.array([1, 2, 3, 4, 5]) B = np.array([5, 3, 4, 0, 2]) I = np.argpartition(A, 0) R = np.logical_or(np.logical_and(1 - (I + 1) % 2, A > B), np.logical_and((I + 1) % 2, A < B)) print(type(R), R) Вывод: [ True False True True False] Демо на Rextester.

Комментариев нет:

Отправить комментарий