我在下面的表格文本文件...如何創建一個陣列從一個混亂的文本文件
一些行文本
一些行文本
一些文本行的數據輸入0(i = 0,j = 0);其中,數據輸入0(i = 0,j = 0);數據輸入0(i = 0,j = 0);數據輸入0(i = 1,值= 1.000000
數據輸入1(i = 0,j = 1);值= 1.000000
數據項2(i = 0,j = 2);值= 1.000000
數據項3(i = 0,j = 3);值= 1.000000
等相當多的行。總陣列最終爲433行×400列。有一行連字符 - 分隔每個新的i值。到目前爲止,我有以下代碼:
f = open('text_file_name', 'r')
lines = f.readlines()
這簡直是打開該文件,並將其與每行作爲一個單獨的字符串轉換爲一個列表。我需要能夠爲i和j位置創建一個具有給定值的數組 - 我們調用數組A. A [0,0]的值應該是1.000000。我不知道我怎樣才能從凌亂的文本文件(在我的舞臺,凌亂的列表)得到一個可用的陣列
編輯:
預期的輸出是NumPy的陣列。如果我可以達到這一點,我可以通過問題的其餘任務
更新: 謝謝你,Lukasz,下面的建議。我有點理解你寫的代碼,但我不太明白它使用它。然而,你已經給了我一些關於做什麼的好主意。數據條目從文本文件的第12行開始。 i的值在第22和27個字符位置內,j的值在第33和39個字符位置內,並且值的值在第49和第62個字符位置內。我意識到這對於這個特定的文本文件來說過於具體,但是我的教授對此很好。現在
,我已經寫了使用這個文本文件
for x in range(12,len(lines)):
if not lines[x].startswith(' data entry'):
continue
else:
i = int(lines[x][22:28])
j = int(lines[x][33:39])
r = int(lines[x][49:62])
matrix[i,j] = r
print matrix
的格式如下代碼,並給出以下ValueError異常消息:
r = int(lines[x][49:62])
ValueError: invalid literal for int() with base 10: '1.000000'
任何人都可以解釋爲什麼這是給(我應該能夠將字符串'1.000000'轉換爲整數1)以及我能做些什麼來糾正問題?
是否要創建列表的列表? Numpy數組?你的預期產出是多少? –
NumPy數組是預期的輸出。對不起,我應該指定 – dvanny