簡體   English   中英

讀取包含特定數字的行

[英]Read lines containing certain numbers

所以,這就是我想要做的:我有兩組數據文本文件。 第一組包含如下所示的數據:

timestamps  parameter
151 152     700
153 154     701
155 156     702
157 158     703

第一列和第二列是時間戳,第三列是 pramater。 第二組數據如下所示:

timestamp       data value
154.2           +6.0087e-03
155.5           +8.3871e-03
155.7           +5.9500e-03
158             +1.5245e-02

第一列包含時間戳,第二列包含數據值。

所以,我現在想做的是:我想讀取某個參數的時間戳,例如參數 702(即 155 和 156)的時間戳。 然后我想獲取這些時間戳並將這些時間戳之間的所有數據值添加到一個數組中(所以在這個例子中,數組將是:

array = [+8.3871e-03, +5.9500e-03]

所以,我想對 set one 的每一行都這樣做,這意味着從 700 到 1100 的參數,以便我獲得每個參數的數據值數組。 然后我想進一步處理數據,但首先我需要為該問題找到解決方案,但我真的沒有什么好主意。 我很感激任何建議!

所以,我已經認識到我只需要第一組的每一行中的第一個條目,所以第一個時間戳。 這樣,我找到了一個似乎有效的相當簡單的解決方案。 它看起來像這樣:

pyro01 = np.loadtxt('pyro_eins.dat')
pyro_run01 = []
data01 = np.loadtxt('wavelengths_eins.dat')
    for line in data01:
        pyro_run01.append(np.average(pyro01[pyro01[:,0] == int(line[0])][:,-1]))

其中,pyro_eins 是第二組(帶有數據值),而波長s_eins 是帶有參數和時間戳的組。

你可以試試這個:

parameters = {int(i[-1]):i[:-1] for i in [b.strip('\n').split() for b in open('file1.txt')][1:]}
datavals = {a:b for a, b in [i.strip('\n').split() for i in open('file2.txt')][1:]}
parameter = 702
final_arrays = [b for a, b in datavals.items() if float(a) >= float(parameters[parameter][0]) and float(a) <= float(parameters[parameter][-1])]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM