반응형
첫째, 다음은 코드의 관련 부분입니다.
stokes_list = np.zeros(shape=(numrows,1024)) # 'numrows' defined earlier
for i in range(numrows):
epoch_name = y['filename'][i] # 'y' is an array from earlier
os.system('pdv -t {0} > temp.txt '.format(epoch_name)) # 'pdv' is a command from another piece of software - here I copy the output into a temporary file
stokes_line = np.genfromtxt('temp.txt', usecols=3, dtype=[('stokesI','float')], skip_header=1)
stokes_list = np.vstack((stokes_line,stokes_line))
따라서 기본적으로 코드가 반복 될 때마다 stokes_line
은 temp.txt
파일에서 열 (네 번째 열) 중 하나를 가져 와서 한 줄을 추가하고 싶습니다. 매번 stokes_list
에
예를 들어 첫 번째 stokes_line
이
1.1 2.2 3.3
두 번째는
4.4 5.5 6.6
그러면 stokes_list
가
1.1 2.2 3.3
4.4 5.5 6.6
그리고 계속 성장할 것입니다 ...
지금은 작동하지 않습니다.
stokes_list = np.vstack((stokes_line,stokes_line))
정확하지 않습니다. 2 개의 목록 만 쌓아 두는 것입니다. 인수가 2 개뿐이므로 의미가 있습니다. 나는 기본적으로 내가 몇 번이고 계속 쌓이는 방법을 알고 싶습니다.
어떤 도움이라도 대단히 감사하겠습니다!
필요한 경우 다음은 temp.txt 파일 형식의 예입니다.
File: t091110_065921.SFTC Src: J1903+0925 Nsub: 1 Nch: 1 Npol: 4 Nbin: 1024 RMS: 0.00118753
0 0 0 0.00148099 -0.00143755 0.000931365 -0.00296775
0 0 1 0.000647476 -0.000896698 0.000171287 0.00218597
0 0 2 0.000704697 -0.00052846 -0.000603842 -0.000868739
0 0 3 0.000773361 -0.00234724 -0.0004112 0.00358033
0 0 4 0.00101559 -0.000691062 0.000196023 -0.000163109
0 0 5 -0.000220367 -0.000944024 0.000181002 -0.00268215
0 0 6 0.000311783 0.00191545 -0.00143816 -0.00213856
해결 방법
vstack
ing은 전체 배열을 복사하기 때문에 좋지 않습니다.
일반 Python list
, .append
를 만든 다음 전체를 np.vstack
에 전달하여 새 배열을 한 번 만듭니다.
stokes_list = []
for i in xrange(numrows):
...
stokes_line = ...
stokes_list.append(stokes_line)
big_stokes = np.vstack(stokes_list)
참조 페이지 https://stackoverflow.com/questions/12299124
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python에서 SFTP를 통해 연결 한 후 디렉터리의 모든 폴더 및 파일을 나열하는 방법 (0) | 2021.02.08 |
---|---|
파이썬 Python이 CSV를 올바르게 구문 분석 (0) | 2021.02.08 |
파이썬 비닝 된 데이터가 주어진 경우 파이썬 플롯 간단한 히스토그램 (0) | 2021.02.08 |
파이썬 Pandas 데이터 프레임에서 행의 하위 집합 수정 (0) | 2021.02.08 |
파이썬 JSON 데이터를 파일에 어떻게 쓰나요? (0) | 2021.02.08 |
댓글