我已經在這個(簡單的)Python代碼上花費了很多年,並且感謝這個論壇,我差不多在那裏。我真的希望有人能夠直接讓我100%的工作!如何使用numpy vstack
首先,這裏是代碼的相關部分:
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
謝謝 - 這非常有幫助 – user1551817
+1爲「不要把vstack放入循環」。 – mak