Почему при создании массива float32 из списка возникает ошибка значения? - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь создать массив float32 следующим образом,

np.float32([kp2, kp2+dir_v*dist, kp2 + dir_v_r*dist])

Однако я получаю следующую ошибку,

ValueError : установка элемента массива с последовательностью.

Я попытался привести его к массиву numpy явно следующим образом и повторить попытку, но все равно я получаю ту же ошибку

np.array([kp2, kp2+dir_v*dist, kp2 + dir_v_r*dist]).astype(float)

что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

Вот пример, который выдает вашу ошибку:

In [910]: np.array([1,[1,2,3],4])                                                              
Out[910]: array([1, list([1, 2, 3]), 4], dtype=object)

нормально без преобразования float - но тогда ошибка:

In [911]: np.array([1,[1,2,3],4]).astype(float)                                                
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
TypeError: float() argument must be a string or a number, not 'list'

The above exception was the direct cause of the following exception:

ValueError                                Traceback (most recent call last)
<ipython-input-911-9c007059d6ad> in <module>
----> 1 np.array([1,[1,2,3],4]).astype(float)

ValueError: setting an array element with a sequence.

Я подозреваю, что [kp2, kp2+dir_v*dist, kp2 + dir_v_r*dist] содержит смесь чисел, массивов, списков, которые создают массив объектов типа dtype.

Если список содержит сочетание чисел и списков чисел (или массивов), hstack может быть тем, что вам нужно:

In [922]: np.hstack([1,[1,2,3],4])                                                             
Out[922]: array([1, 1, 2, 3, 4])
0 голосов
/ 22 февраля 2020

Укажите тип данных с аргументом dtype для np.array().

np.array([kp2, kp2+dir_v*dist, kp2 + dir_v_r*dist], dtype=float)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...