2017-07-30 36 views
0

我很難解析包含在兩個變量之間的矩陣。下面是我試圖提取到numpy的陣列的矩陣的一個例子:如何解析兩個變量之間的信息到矩陣中?

</MO Number> 
4.224609607748e+00 4.085857782359e+00 1.273383604708e+00 -6.802974691818e-03 
9.099528133406e-03 6.867550219273e-03 5.859231188647e-03 3.684441849425e-03 
5.836775773317e-04 -2.316776085880e-16 -1.456850991492e-16 -2.307897076406e-17 
4.140895678156e-03 2.603906355541e-03 4.125025757803e-04 -1.739011495381e-03 
-1.681896173898e-03 -5.241735641835e-04 -1.739011375813e-03 -1.681896058258e-03 
-5.241735281434e-04 
<MO Number> 

這裏是我所編寫的代碼:

def function3(start, end): 
    lines = f.readlines() 
    config_found = False 
    var = [] 
    for line in lines: 
     if line.strip() == end: 
      config_found = False 
     elif config_found: 
      i = line.rstrip() 
      var.append(i) 
     elif line.strip() == start: 
      config_found = True 
    var1 = [elem.strip() for elem in var] 
    var2 = var1[1:-1] 
    return var2 
with open(filename, 'r') as f: 
    mo1=np.array(function3(m['start1'],m['end1'])) 

其中啓動1和END1變量表示的標頭。 然而,這個返回如下:

array([ '4.224609607748e+00 4.085857782359e+00 1.273383604708e+00 -6.802974691818e-03', 
    '9.099528133406e-03 6.867550219273e-03 5.859231188647e-03 3.684441849425e-03', 
    '5.836775773317e-04 -2.316776085880e-16 -1.456850991492e-16 -2.307897076406e-17', 
    '4.140895678156e-03 2.603906355541e-03 4.125025757803e-04 -1.739011495381e-03', 
    '-1.681896173898e-03 -5.241735641835e-04 -1.739011375813e-03 -1.681896058258e-03', 
    '-5.241735281434e-04']) 

看來,我的代碼存儲矩陣作爲一個單一的元素,每一行的時候我真的喜歡它給每個浮點數存儲爲一個單獨的元素,通過分離一個逗號。所以,這樣的事情:

[ '4.224609607748e+00', '4.085857782359e+00', '1.273383604708e+00' '-6.802974691818e-03', 
    '9.099528133406e-03', '6.867550219273e-03', '5.859231188647e-03' '3.684441849425e-03', 

等 任何幫助將非常感激我如何能修改我的代碼,甚至是完全不同的方法解決這個問題。

謝謝!

回答

2

您想要使用split()將字符串按空格分成字符串列表。

var2 = [line.split() for line in var2]

相關問題