2014-11-10 29 views
6

udało mi się załadować zdjęcia w folderze za pomocą sklearn wiersza poleceń: load_sample_images()Konwersja listę numpy tablicy

Chciałbym teraz, aby przekształcić go w formacie numpy.ndarray z float32 typu danych

Mogłem przekształcić go np.ndarray używając: np.array(X), jednak np.array(X, dtype=np.float32) i np.asarray(X).astype('float32') dać mi błąd:

ValueError: setting an array element with a sequence. 

Czy istnieje sposób wo rk wokół tego?

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

Masz listę list, w której nie wszystkie listy mają taką samą liczbę wpisów. – Daniel

+0

ok. Jakie jest rozwiązanie? Nowość w pythonie, więc proszę o zachowanie mnie. –

+0

Sprawdź typ po pomyślnym wykonaniu 'np.array (x)'. Jeśli domyślnie jest to float64, to po prostu próbujesz przypisać typ, który nie jest odpowiedni dla Twojej listy (lub listy list). – ha9u63ar

Odpowiedz

3

Jeśli masz listę list, trzeba było używać tylko ...

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

za tym LINK w dokumentacji scipy/numpy. Trzeba tylko zdefiniować dtype w wywołaniu asarray.