Что означает ValueError?

Я пытаюсь вычислить кратчайшее расстояние между набором точек и отрезком. Все идет хорошо, пока он не рассчитает расстояние, используя значения из двух наборов массивов, один для расстояний х и один для расстояний у.

Линия для расчета расстояния:

d = np.sqrt( dx**2 + dy**2 ).

Это говорит мне, что::

ValueError: operands could not be broadcast together with shapes (3312,) (0,) 

Я использовал скрипт ранее с другим набором значений, и он отлично работает. Но сейчас этого уже нет. И я попытался найти смысл сообщения об ошибке, но пока не увенчался успехом. Может кто-нибудь помочь?

2 ответа

Решение

Кажется, ваша проблема в том, что dx и dy - это два массива разной длины, dx имеет длину 3312, а dy - 0. Лучше проверить, правильно ли установлен dy.

Если я воспроизвожу вашу проблему с двумя массивами длины 6 и 0, я получу ту же ошибку, если я использую два массива одинаковой длины, она будет работать просто отлично.

ValueError Возникает, когда встроенная операция или функция получает аргумент, имеющий правильный тип, но недопустимое значение

Демо-версия:

>>> int("1")
1
>>> int("h")         # valueError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'h'
Другие вопросы по тегам