numpy 如何从txt文件中读取此列表字符串

5n0oy7gb  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(144)

我在文本文件中有这个列表字符串:

[array([21998.], dtype=float32), array([648.], dtype=float32), array([305.], dtype=float32), array([182.], dtype=float32)]

如何读取数组值?
下面的代码我已经试过了

with open(datPath+'histo1.txt', 'r') as file:
   hist1 = np.array(eval(file.read())) # read list string and convert to array
print(hist1)

但它给了我错误:

name 'float32' is not defined
2ekbmq32

2ekbmq321#

您可以只提供array和float32的Map及其各自的函数,并将其传递给eval。如果你的文件中有多行,循环然后一次读取并转换每一行。

import numpy as np

string = "[array([21998.], dtype=float32), array([648.], dtype=float32), array([305.], dtype=float32), array([182.], dtype=float32)]"

results = eval(string, {"array": np.array, "float32": np.float32})

print(results )
# [array([21998.], dtype=float32), array([648.], dtype=float32), array([305.], dtype=float32), array([182.], dtype=float32)]

相关问题