2016-09-03 133 views
-2

我具有包含以下形式的數據dat文件:DAT文件轉換陣列

0.23548 0.34938 0.54311 0.20902 0.52414 0.323418 1

對於每個觀測和通過每行分隔。如何將其轉換爲一個數組,前6個變量爲X,最後一個變量爲Y?

再次感謝您!

+0

請更具體一些。 「dat文件」是.dat文件擴展名的文本文件嗎?所有這些數字都在一個文本行上,用空格分隔,並且您有多個文本行? 「前六個變量爲X,最後一個變量爲Y」意味着什麼? X的二維列表和Y的一維列表是否足夠? (即X [0] [0] == 0.23548,X [0] [1] == 0.34938等等,Y [0] == 1]。)你有沒有試過自己的代碼? –

+0

感謝您回答我的一些問題,但有些問題仍然突出。例如,所需答案的格式尚不清楚。 –

+0

Hi Rory,文件確實是一個.dat擴展名文件,有多行,其中第一行包含6個X和1個Y等等。我希望將它轉換爲下面mpurg提到的2維數組。 – Marcus

回答

0

這個問題有點不清楚,但我會盡力回答。

如果輸入文件具有以下結構(沒有第一和第三行):

X1  X2  X3  X4  X5  X6  Y(1-6) 
0.23548 0.34938 0.54311 0.20902 0.52414 0.323418 1 
X7  X8  X9  X10  X11  X12  Y(7-12) 
0.23548 0.34938 0.54311 0.20902 0.52414 0.323418 1 

然後將以下代碼應該工作。 它返回元組列表(Xn,Yn)。

points = [] 
for line in open("file.dat", "r").readlines(): 
    fields = map(float, line.split()) 
    xs, y = fields[:-1], fields[-1] 
    for x in xs: 
     points.append((x,y)) 

print points 
+0

非常感謝您的幫助! :) – Marcus