Python - 如何将数组中的stringed数组转换为float数组

时间:2018-02-21 04:33:43

标签: python multidimensional-array

python noob here。我试图从包含数组字段的文本文件读入并附加到列表但我不断收到错误,数组内的数组是字符串而不是浮点数。

来自文本文件;

[81.48, 74.02, 4.03, 23.18, 211359232.0];[0.007, -0.006, -0.082, 0.075, -0.153];[-0.014, 0.025, 0.06, 0.085, 0.014]

我在文本中阅读,拆分它,转换为np.array并累积追加到数组但它似乎无法工作。 数组中的数组是一个字符串 e.g。

['[82.04, 73.6, 3.7, 24.93, 179081216.0]', '[83.3, 74.0, 3.41, 24.97, 175265792.0]', '[82.94, 74.75, 3.41, 27.62, 177734656.0]'

我试图将其转换为没有'

[[82.04, 73.6, 3.7, 24.93, 179081216.0], [83.3, 74.0, 3.41, 24.97,175265792.0], [82.94, 74.75, 3.41, 27.62, 177734656.0]]


import numpy as np
f=open('/home/oracle/adpo/result_run_output.txt','r')
x=[]

for line in f:
   line=line.rstrip('\n')
   a = line.split(';')
   b = np.array(a[2])
   x.append(b

最终用于生成相关矩阵。请告知并谢谢。

1 个答案:

答案 0 :(得分:0)

正如@ juanpa.arrivillaga正确观察到的,你不应该发明你的格式。但是,既然你做了,幸运的是,你的行看起来像JSON数组,下面的代码可能有所帮助:

import json
data = """[81.48, 74.02, 4.03, 23.18, 211359232.0];[...]"""

array = np.array([json.loads(row) for row in data.split(';')])