2013-11-25 32 views
10

Bazı meta veriler içeren bir dosyam var ve daha sonra başlıklarla birlikte 2 sütundan oluşan bazı gerçek veriler var. Genfromtxt'i kullanmadan önce iki tür veriyi ayırmam gerekir mi? Ya da belki bir şekilde verileri bölebilir miyim? Dosya tanıtıcısını, başlıkların hemen üstündeki satırın sonuna yerleştirmek ve oradan genfromtxt dosyasını denemek ne demektir? Teşekkür dosyasının biçimi aşağıda gösterilmiştir: İlk n satırları istemiyorsanızVeri dosyasındaki numpy dizisine veri okuma

&SRS 
<MetaDataAtStart> 
multiple=True 
Wavelength (Angstrom)=0.97587 
mode=assessment 
background=True 
issid=py11n2g 
noisy=True 
</MetaDataAtStart> 
&END 
Two Theta(deg) Counts(sec^-1) 
10.0 41.0 
10.1 39.0 
10.2 38.0 
10.3 38.0 
10.4 41.0 
10.5 42.0 
10.6 38.0 
10.7 44.0 
10.8 42.0 
10.9 39.0 
11.0 37.0 
11.1 37.0 
11.2 45.0 
11.3 36.0 
11.4 37.0 
11.5 37.0 
11.6 40.0 
11.7 44.0 
11.8 45.0 
11.9 46.0 
12.0 44.0 
12.1 40.0 
12.2 41.0 
12.3 39.0 
12.4 41.0 
+0

Böylece başlık bilgisini hiç istemiyorsunuz? – cm2

+0

Başlık bilgilerini de okumak istiyorum. :) – user3029076

+0

Tamam, o zaman temel olarak ayrı ayrı başlıkları ayrıştırıyorsunuz; cevabımı aşağıya bakın. – cm2

cevap

20

, denemek (eksik hiçbir veri yoksa): (

data = numpy.loadtxt(yourFileName,skiprows=n) 

veya eğer orada eksik verileri):

data = numpy.genfromtxt(yourFileName,skiprows=n)  

sonra başlık bilgilerini ayrıştırmak istiyorsanız, dosya örneğin başlık ayrıştırmak geri dönüp open edebilirsiniz:

fh = open(yourFileName,'r') 
for i,line in enumerate(fh): 
    if i is n: break 
    do_other_stuff_to_header(line) 
fh.close() 
+0

Sanırım fikri aldım, üstbilgisinde okumak için csv.dictreader kullanmam gerekecek mi? – user3029076

+0

Yukarıda neyim var 'n' satırına ulaşana kadar satırların üzerine dönecek ve sonra duracaktır. Onları çevrelediğinde, onları ayrıştırmak istediğiniz her şeyi yapabilirsiniz. – cm2

+0

Son n satırları nasıl içe aktarmıyorum? – Swift

İlgili konular