web-dev-qa-db-fra.com

Lecture des données dans un tableau numpy à partir d'un fichier texte

J'ai un fichier avec des métadonnées, puis des données réelles composées de 2 colonnes avec des en-têtes. Dois-je séparer les deux types de données avant d'utiliser genfromtxt dans numpy? Ou puis-je diviser les données d'une manière ou d'une autre? Que diriez-vous de placer le pointeur de fichier à la fin de la ligne juste au-dessus des en-têtes, puis d'essayer genfromtxt à partir de là? Merci Le format du fichier est indiqué ci-dessous:

 &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
13
Nirvan

Si vous ne voulez pas les premières n lignes, essayez (s'il n'y a pas de données manquantes):

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

ou (s'il manque des données):

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

Si vous souhaitez ensuite analyser les informations d'en-tête, vous pouvez revenir en arrière et open le fichier analyser l'animateur, par exemple:

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