Все логические комбинации из 2 numpy массивов - PullRequest
0 голосов
/ 19 апреля 2020

Существует ли в numpy существующая функция, которая принимает 2 numpy массивов (x, y) и возвращает булеву матрицу для каждого i, j (x [i]> y [j])

Например, пусть x = [3, 4, 5] и y = [1, 2, 3] и я хочу

res = [ [True, True, False],

        [True, True, True],

        [True, True, True] ]

Ответы [ 2 ]

2 голосов
/ 19 апреля 2020

Вам здесь не нужна функция, может работать только трансляция массива, если вы правильно сформируете свои массивы. Я думаю, что вы хотите этот подход, который делает x вектор столбца и y вектор строки:

x = np.array([3,4,5])
y = np.array([1,2,3])

res = x[:,None] > y[None,:]
0 голосов
/ 19 апреля 2020

Используя numpy, вы можете преобразовать свой список x и y в массивы следующим образом: x = np.array([3,4,5]) y=np.array([1,2,3]), а затем numpy выполняет поэлементное сравнение, просто выполнив: print(x > y)

...