Numpy ошибка с использованием .any ()? - PullRequest
0 голосов
/ 24 октября 2019

У меня возникает следующая ошибка при использовании NumPy:

>>> distance = 0.9014179933248182
>>> min_distance = np.array([0.71341723, 0.07322284])
>>> distance < min_distance
array([False, False])

, что верно, но когда я пытаюсь:

>>> distance < min_distance.any()
True

, что, очевидно, неправильно, так как нет номерав 'min_distance' меньше, чем 'distance'

Что здесь происходит? Я использую NumPy в Google Colab версии 1.17.3.

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

попробуй (distance < min_distance).any()

2 голосов
/ 24 октября 2019

Несмотря на то, что часто встречаются ошибки, это не так. Обратите внимание, что min_distance.any() возвращает логический результат. Итак, в этом выражении:

distance < min_distance.any()

вы сравниваете float с логическим значением, которое, к сожалению, работает из-за комедии ошибок:

  • bool является подклассомint
  • True равно 1
  • числа с плавающей точкой сопоставимы с целыми числами.

Например

>>> 0.9 < True
True
>>> 1.1 < True
False

ЧтоВы хотели вместо этого:

>>> (distance < min_distance).any()
False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...