Сравните элементы двухмерных массивов - PullRequest
1 голос
/ 26 октября 2019

У меня есть два двумерных массива, a и b. Я хочу сравнить, если каждый элемент в массиве b находится в массиве a. Например, если [2,1] находится в [1,4,3,2], выход будет True, если [2,1] находится в [3,1], выход будет False и т. Д. с [1,3] элементом. Выход должен быть [True, False, False] для элемента [2,1] и [True, True, False] для элемента [1,3].

a = np.array([[1,4,3,2],[3,1],[1,7,8,9,4]])
b = np.array([[2,1],[1,3]])

[True,False,False]
[True,True,False]

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

Посмотрите на функцию numpy.in1d ​​.. она проверяет, содержатся ли элементы из первого массива во втором массиве:

In [18]: [[np.in1d(bx, ax).all() for ax in a] for bx in b]
Out[18]: [[True, False, False], [True, True, False]]
0 голосов
/ 26 октября 2019

Простой способ будет -

In [80]: np.vstack([np.isin(b,i).all(1) for i in a])
Out[80]: 
array([[ True,  True],
       [False,  True],
       [False, False]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...