从 .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))