Что означает оператор «in» между массивами numpy? - PullRequest
3 голосов
/ 07 октября 2019

Я заметил, что in можно использовать между массивами numpy. Однако его значение может быть немного нелогичным.

import numpy as np
np.array([0]) in np.array([1, 2])
# False
np.array([0]) in np.array([0, 1])
# True
np.array([0, 1]) in np.array([0])
# True -- somewhat surprisingly

Так что, похоже, он ведет себя как np.any(np.isin(·, ·)), а не как более интуитивный np.all(np.isin(·, ·)).

  1. Isэто действительно так?
  2. В чем причина такого выбора?

1 Ответ

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

Поскольку поведение оператора "in" определяется реализацией метода contains класса np.array, вы должны проверить этот ответ https://stackoverflow.com/a/30690604/7533781 - он очень хорошо объяснен.

Следующийэто определение также [0, 1] в np.array ([0]) оценивается как True - вы можете попробовать это сами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...