Tôi đã sử dụng độ tuổi trên mã Python (đơn giản) này và nhờ diễn đàn này, tôi đã gần đến. Tôi thực sự hy vọng ai đó có thể đặt tôi thẳng để làm cho nó hoạt động 100%!cách sử dụng numpy vstack
Thứ nhất, đây là phần có liên quan của mã:
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))
Vì vậy, về cơ bản, mọi mã chạy vòng quanh, stokes_line kéo một trong các cột (một thứ 4) từ tập tin 'temp.txt' và Tôi muốn nó thêm một dòng vào 'stokes_list' mỗi lần.
Ví dụ, nếu stokes_line
đầu tiên là
1.1 2.2 3.3
và thứ hai là
4.4 5.5 6.6
sau đó stokes_list
sẽ
1.1 2.2 3.3
4.4 5.5 6.6
và sẽ tiếp tục tăng trưởng ...
Hiện tại, công việc này không hoạt động vì tôi cho rằng dòng:
stokes_list = np.vstack((stokes_line,stokes_line))
không chính xác. Nó chỉ xếp chồng 2 danh sách - điều này có ý nghĩa vì tôi chỉ có 2 đối số. Tôi về cơ bản muốn biết làm thế nào tôi giữ xếp chồng một lần nữa và một lần nữa.
Bất kỳ trợ giúp nào cũng sẽ rất biết ơn!
Nếu nó là cần thiết, đây là một ví dụ về định dạng của tập tin 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
Cảm ơn bạn - điều đó rất hữu ích – user1551817
+1 cho "không đặt vstack trong vòng lặp". – mak