복붙노트

[PYTHON] 텍스트 파일에서 numpy 배열로 데이터 읽기

PYTHON

텍스트 파일에서 numpy 배열로 데이터 읽기

몇 가지 메타 데이터가있는 파일이 있고 머리글이있는 두 개의 열로 구성된 실제 데이터가 있습니다. numfrom에서 genfromtxt를 사용하기 전에 두 가지 유형의 데이터를 분리해야합니까? 또는 어떻게 든 데이터를 분할 할 수 있습니까? 머리말 바로 위의 줄 끝에 파일 포인터를 놓은 다음 거기에서 genfromtxt를 시도해보십시오. 감사 파일의 형식은 다음과 같습니다.

 &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

해결법

  1. ==============================

    1.첫 번째 n 개의 행을 원하지 않으면 누락 된 데이터가 없는지보십시오.

    첫 번째 n 개의 행을 원하지 않으면 누락 된 데이터가 없는지보십시오.

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

    또는 (누락 된 데이터가있는 경우) :

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

    그런 다음 헤더 정보를 구문 분석하려면 뒤로 이동하여 파일을 열어 헤더를 구문 분석하십시오. 예를 들면 다음과 같습니다.

    fh = open(yourFileName,'r')
    for i,line in enumerate(fh):
        if i is n: break
        do_other_stuff_to_header(line)
    fh.close()
    
  2. from https://stackoverflow.com/questions/20200353/reading-data-into-numpy-array-from-text-file by cc-by-sa and MIT license