Странное поведение Numpy Any(), когда dtype=objectPython

Программы на Python
Anonymous
Странное поведение Numpy Any(), когда dtype=object

Сообщение Anonymous »

В документах Numpy для Any() указано: «Возвращается новое логическое значение или ndarray...» и «Возвращается одно логическое значение, если ось равна None». "
Подумайте об этом:

Код: Выделить всё

>>> np.array([0, 111, 222]).any()
True
>>> np.array([0, 111, 222], dtype=object).any()
111
Axis имеет значение None, но во втором случае логическое значение не возвращается. Однако можно признать, что результат правдив.
Проблема возникает при выполнении последующей логической операции. Например:

Код: Выделить всё

>>> np.invert(np.array([0, 111, 222]).any())
False
>>> np.invert(np.array([0, 111, 222], dtype=object).any())
-112
Это можно легко обойти, если вы поймете, как ведет себя Any() при использовании dtype=object.
Но остается вопрос: ожидаемо ли такое поведение от функции Any()? Разве он не должен возвращать логическое значение, как сказано в документации?

Подробнее здесь: https://stackoverflow.com/questions/779 ... ype-object

Вернуться в «Python»