2014-11-10 3 views
6

мне удалось загрузить изображения в папке с помощью командной строки sklearn: load_sample_images()Преобразование списка Numpy массива

Теперь я хотел бы, чтобы преобразовать его в формат numpy.ndarray с float32 типом данных

Я был в состоянии преобразовать его в np.ndarray с помощью: np.array(X), однако np.array(X, dtype=np.float32) и np.asarray(X).astype('float32') дать мне ошибку:

ValueError: setting an array element with a sequence. 

есть ли способ, чтобы горе rk вокруг этого?

from sklearn_theano.datasets import load_sample_images 
import numpy as np 

kinect_images = load_sample_images() 
X = kinect_images.images 

X_new = np.array(X) # works 
X_new = np.array(X[1], dtype=np.float32) # works 

X_new = np.array(X, dtype=np.float32) # does not work 
+4

У вас есть список списков, в которых не все списки имеют одинаковое количество записей. – Daniel

+0

ОК. Каково решение? Новое на python, поэтому, пожалуйста, несите меня –

+0

Проверьте тип после успешного завершения 'np.array (x)'. Если это float64, который по умолчанию - тогда вы просто пытаетесь присвоить тип, который не подходит для вашего списка (или списка списков). – ha9u63ar

ответ

3

Если у вас есть список списков, вы только нужно использовать ...

import numpy as np 
... 
npa = np.asarray(someListOfLists, dtype=np.float32) 

в этом LINK в документации SciPy/Numpy. Вам просто нужно было определить dtype внутри вызова asarray.

Смежные вопросы