我正在从列表中的文件中读取行:
import numpy as np
lines = tuple(open('values.txt','r'))
x = np.array([line for line in lines])
values.txt
看起来像:
[1,0,1,0],
[1,0,0,0]
它抛出一个错误:
valueError: invalid literal for float()
但是,如果我只是将列表分配给 x
,它就可以正常工作。
如何从 numpy 数组中的文件获取输入?
最佳答案
lines = open('values.txt', 'r')
x = np.array( [ map(float, (l[l.find("[")+1 : l.find("]")].split(",")))
for l in lines ] )
print x
简单说明:
这将获取文件中的每一行,找到每一侧的括号,并获取括号内的字符串。然后,我们使用逗号作为分隔符将该字符串拆分为一个数组。然后,我们有一个字符串数组,因此我们将 float 函数映射到每个元素,将其转换为 float 。然后我们使用标准列表理解对每一行执行此操作。
关于python - 从文件输入 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074426/