Проверьте, является ли массив частью большего массива - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь проверить, является ли 1-мерный массив Numpy частью большего 2-мерного массива. Я мог бы сделать это со многими циклами for, но я думаю, что есть более питонный способ сделать это.

Попытка у меня далеко:

1darray = np.array([0,0,0])
2darray = np.array([[0,0,1],[0,1,0],[1,0,0]]) 
1darray in 2darray 

Но этот код возвращает True До тех пор, пока один из элементов 1darray встречается где-то в 2darray. Но я хочу проверить, является ли весь массив строкой большего, поэтому я хотел бы, чтобы этот код возвращал False , в то время как я хотел бы, чтобы этот код возвращал True :

1darray = np.array([0,0,1])
2darray = np.array([[0,0,1],[0,1,0],[1,0,0]]) 
1darray in 2darray 

Буду признателен за любую помощь, уже спасибо!

1 Ответ

4 голосов
/ 30 марта 2019

Для этого можно использовать функции any() и all().

>>> a=np.array([0,0,0])
>>> b=np.array([[0,0,1],[0,1,0],[1,0,0]])
>>> (a == b).all(axis=1).any()
False

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