Что означает 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'