Какой краткий / идиоматический способ получить построчное равенство 2d массивов в numpy? - PullRequest
0 голосов
/ 09 ноября 2019

С двумя массивными двумерными массивами я хотел бы, чтобы массив результатов был заполнен результатами построчного равенства. Например:

>>> a = np.array([[1, 2], [3, 4], [5, 6]])
>>> b = np.array([[5, 6], [3, 4], [1, 2]])
>>> a == b  # not quite what I want
array([[False, False],
       [ True,  True],
       [False, False]])
>>> np.equal(a, b)  # also not quite
array([[False, False],
       [ True,  True],
       [False, False]])

Требуемый результат, равенство каждой строки как одного элемента, будет следующим:

array([False,  True, False])

Какой компактный / идиоматический способ получить этот результат?

1 Ответ

0 голосов
/ 09 ноября 2019

Вы можете использовать all() над axis=1, чтобы превратить каждую строку [bool, ...] в True, если все истинно, и False, если есть ложь.

Например:

>>> a = np.array([[1, 2], [3, 4], [5, 6]])
>>> b = np.array([[5, 6], [3, 4], [1, 2]])
>>> np.all(a == b, axis=1)
array([False,  True, False])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...