2013-05-24 16 views
10

yüzer dönüştürmek olamazdı:numpy.loadtxt, ValueError: string Bu büyük csv dosyasından örnek olduğunu

6.1;6.1;7.2;8.9;5.0; 
8.9;10.0;8.9;6.1;5.0; 

Ben np.loadtxt('test.csv', delimiter=';') ile diziyi numpy için okumaya çalışırsanız alıyorum:

ValueError: could not convert string to float:

ve neden anlamıyorum?

+1

Bir sondaki var işleyen genfromtext kullanın; Her satırda ... her satırın sonunda boş bir sütun var. –

cevap

11

Çizgilerden ';' işaretini kesmeniz gerekir.

Olası geçici çözüm biliyorsanız 5 sütun var olduğunu:

np.loadtxt('test.csv', delimiter=';', usecols=range(5)) 

Veya, bunun yerine eksik değerleri

np.genfromtxt('test.csv', delimiter=';')[:,:-1] 
+0

Haklısınız, ancak eksik değerler olduğu için bazı satırlarda '' 'takip edemiyorum. 'Usecols = range (5) 'i kullanarak, satır' ;; '(yani son değer eksik) ile biterse tekrar hata verir – theta

+1

Belki de CSV'yi okumak için başka bir modül kullanmalıyım. Şu anda pandaları denedim, ve herkesin beklediği gibi iyi okur, ama OTOH diziye CSV'yi okumak için büyük bir paket yüklemek istemiyorum ve tekrar kullanmayın ... – theta

+0

Nah I numpy iyi bir seçim olduğunu düşünüyorum, 'csv' modülü var ama dizeler için daha fazla .. – wim

İlgili konular