从 .txt 读取带有 numpy 的 4D 数组
Read 4D array with numpy from .txt
我生成了一个包含在 .txt 文件中的 4D 数组,如下所示:
[ [ [ [2.47, 1.57], [2.23, 5.95], [0.06, 2.54] ],
[ [0.79, 0.14], [1.64, 2.17], [0.86, 3.53] ],
[ [0.44, 3.42], [1.64, 5.39], [1.57, 2.63] ] ],
[ [ [2.34, 1.57], [0.75, 2.01], [2.86, 1.04] ],
[ [0.77, 1.25], [2.25, 6.08], [2.42, 0.51] ],
[ [1.44, 1.62], [2.44, 3.67], [2.99, 2.75] ] ],
[ [ [1.01, 3.35], [0.81, 0.29], [1.59, 4.37] ],
[ [0.29, 5.70], [0.10, 0.96], [3.08, 3.90] ],
[ [0.94, 2.27], [1.51, 1.87], [0.90, 5.81] ] ] ]
之所以这样排版,是因为这样制作对我来说很容易。但是,由于括号的原因,我无法使用 numpy.loadtxt() 将其作为 python 中的正确 4D 数组正确加载。怎么做到的?
这看起来像是合法的 Python 代码。然后读取并评估转换成列表:
with open("some.txt") as f:
l = eval(f.read())
a = np.array(l)
l
是包含文件内容的列表
a
是所需的 4 维数组。
您可以使用 ast 将字符串读取为 numpy 数组的变量,并使用 pathlib 将整个文件内容读取为字符串,然后在一行中关闭文件,同样:
import numpy as np
import ast
from pathlib import Path
arr_str = Path('./text.txt').read_text()
arr = np.array(ast.literal_eval(arr_str))
我生成了一个包含在 .txt 文件中的 4D 数组,如下所示:
[ [ [ [2.47, 1.57], [2.23, 5.95], [0.06, 2.54] ],
[ [0.79, 0.14], [1.64, 2.17], [0.86, 3.53] ],
[ [0.44, 3.42], [1.64, 5.39], [1.57, 2.63] ] ],
[ [ [2.34, 1.57], [0.75, 2.01], [2.86, 1.04] ],
[ [0.77, 1.25], [2.25, 6.08], [2.42, 0.51] ],
[ [1.44, 1.62], [2.44, 3.67], [2.99, 2.75] ] ],
[ [ [1.01, 3.35], [0.81, 0.29], [1.59, 4.37] ],
[ [0.29, 5.70], [0.10, 0.96], [3.08, 3.90] ],
[ [0.94, 2.27], [1.51, 1.87], [0.90, 5.81] ] ] ]
之所以这样排版,是因为这样制作对我来说很容易。但是,由于括号的原因,我无法使用 numpy.loadtxt() 将其作为 python 中的正确 4D 数组正确加载。怎么做到的?
这看起来像是合法的 Python 代码。然后读取并评估转换成列表:
with open("some.txt") as f:
l = eval(f.read())
a = np.array(l)
l
是包含文件内容的列表
a
是所需的 4 维数组。
您可以使用 ast 将字符串读取为 numpy 数组的变量,并使用 pathlib 将整个文件内容读取为字符串,然后在一行中关闭文件,同样:
import numpy as np
import ast
from pathlib import Path
arr_str = Path('./text.txt').read_text()
arr = np.array(ast.literal_eval(arr_str))