1 kav [2018-09-17 15:56:00]
Я пытаюсь создать ограничительную рамку, используя измерения, упомянутые в аннотации обнаружения в этом наборе данных (я использую политеррасный). По какой-то причине следующий код работает для 25 кадров, а затем внезапно он дает мне ошибку:
Каковы возможные причины этого?
list python-3.x point-clouds
2 ответа
1 Решение Poolka [2018-09-17 17:00:00]
Я загрузил данные, распаковал их, проверил, и оказалось, что файл polyterrasse026.ezd.bbox имеет только 1 строку данных:
Вот почему bbox_path[26] — это 1D-массив. Именно по этой причине вы получили ошибку.
Чтобы проверить, является ли bbox двумерным массивом, вы можете использовать, например, bbox.ndim == 2 . bbox.size показывает количество элементов в массиве, а не количество измерений.
Характер вашей проблемы заключается в том, что np.loadtxt() возвращает 1D-массив, если файл содержит только одну строку данных. Вы можете решить эту проблему следующим образом:
0 Unang [2018-12-20 19:34:00]
Почему я всегда получаю ошибку с этим кодом? msgstr «неверный индекс к скалярной переменной.» muT: массив 1 строка и 400 кол. 1×400 varT: массив 1×400 rataS матрица 10×400
Этот код генерирует ошибку:
в строке: results.append(RMSPE(np.expm1(y_train[testcv]), [y[1] for y in y_test]))
Как это исправить?
1 ответ
Вы пытаетесь проиндексировать в скалярное (не повторяемое) значение:
Когда вы вызываете [y for y in test] вы уже перебираете значения, поэтому вы получаете одно значение в y .
Ваш код такой же, как и попытка сделать следующее:
Я не уверен, что вы пытаетесь получить в свой массив результатов, но вам нужно избавиться от [y[1] for y in y_test] .
Если вы хотите добавить каждый y в y_test к результатам, вам нужно расширить понимание списка до чего-то вроде этого:
This code generates error:
at the line: results.append(RMSPE(np.expm1(y_train[testcv]), [y[1] for y in y_test]))
2 Answers 2
You are trying to index into a scalar (non-iterable) value:
When you call [y for y in test] you are iterating over the values already, so you get a single value in y .
Your code is the same as trying to do the following:
I’m not sure what you’re trying to get into your results array, but you need to get rid of [y[1] for y in y_test] .
If you want to append each y in y_test to results, you’ll need to expand your list comprehension out further to something like this: