2013-11-27 20 views
10

Paketini Açma Python'da yeni - aslında, genelde programlama için yeni, korkarım ki, bu mazereti sonsuza dek kullanamam ... ve merak ediyorum Bu iş parçacığının başlığında belirtilen iki işlev arasındaki farkı öğrenin. Dokümantasyonu içeren web sitesinden, "hiçbir veri eksik olduğunda" numpy.loadtxt [is] [an] eşdeğer işlevi "yazıyor. Tam olarak bunun anlamı nedir? Bu, örneğin, iki sütun arasında boş bir sütuna sahip bir csv dosyanız varsa, numpy.loadtxt olmamalıdır.numpy.genfromtxt ve numpy.loadtxt Arasındaki Fark ve

Ayrıca, bu demek ne

"unpack : bool, optional 
If True, the returned array is transposed, so that arguments may be unpacked using x, y, z = loadtxt(...)" 

Bunun ne anlama konusunda oldukça emin değilim.

Yardımlarınız için minnettarım, teşekkürler!

cevap

10

Siz haklısınız. np.genfromtxt'u kullanarak, eksik bir csv ile uğraşmanıza yardımcı olabilecek missing_values, filling_values parametreleri gibi bazı seçenekler sunar. Örnek: Farklı bir değişkende metin dosyasının her sütunu koymak istediğinizde unpack yararlıdır

filling_values = (111, 222, 333, 444, 555) # one for each column 
np.genfromtxt(filename, delimiter=',', filling_values=filling_values) 
#array([[ 1., 2., 333., 444., 5.], 
#  [ 6., 222., 8., 444., 555.], 
#  [ 11., 222., 333., 444., 555.]]) 

parametre:

1,2,,,5 
6,,8,, 
11,,,, 

ile okunacak olabilir. Örnek, daha sonra sütunlar x, y, z ile metin dosyası vardır: Bu bir 2-B dizisi üzerinde varsayılan iterating By

x, y, z = np.loadtxt(filename).T 

aynı şekilde çalışır hatları üzerinden iterating demektir ki

x, y, z = np.loadtxt(filename, unpack=True) 

Not, işte Bu örnekte neden unpack=True ürününü dönüştürmeniz veya kullanmanız gerektiğini.

+3

Sadece 'np.genfromtxt''in sahip olduğu başka bir güzel seçenek: eğer alanları isimle yapılandırılmış bir diziye sahip olmak istiyorsanız, 'names = True' deyimine sahip olmanıza izin verir ve alan adları otomatik olarak ilk satırdan oluşturulur. dosya. – askewchan