Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将txt(字符串)文件中的4D浮点数组转换为numpy浮点数组_Python_Python 3.x_Numpy - Fatal编程技术网

Python 将txt(字符串)文件中的4D浮点数组转换为numpy浮点数组

Python 将txt(字符串)文件中的4D浮点数组转换为numpy浮点数组,python,python-3.x,numpy,Python,Python 3.x,Numpy,我有一个txt(字符串)文件,看起来像: [[[[0.17262284, 0.95086717, 0.01172171, 0.79262904], [0.52454078, 0.16740103, 0.32694925, 0.78921072], [0.77886716, 0.35550488, 0.89272706, 0.36761104]], [[0.14336841, 0.94488079, 0.83388505, 0.02065268], [0.31

我有一个txt(字符串)文件,看起来像:

[[[[0.17262284, 0.95086717, 0.01172171, 0.79262904],
     [0.52454078, 0.16740103, 0.32694925, 0.78921072],
     [0.77886716, 0.35550488, 0.89272706, 0.36761104]],
    [[0.14336841, 0.94488079, 0.83388505, 0.02065268],
     [0.31804594, 0.22056339, 0.84088501, 0.94994676],
     [0.57845057, 0.12645735, 0.12628646, 0.05526736]]]]
形状为(1,2,3,4)。 如何轻松地将其转换为考虑数据类型和形状(可从括号中推断)的
NumPy
数组? 假设我有txt文件中的形状,它会使它更容易吗? 我试过使用
np.loadtxt
,似乎它不能处理这个4d形状,它作为1D数组加载。
我可以自己解析形状,然后将所有成员转换为浮点数,但我相信有np函数已经做到了这一点。文件不是由我创建的-我只需要pkl数组。

此数组编码与json的编码方案匹配,因此您可以使用它来加载它:

import json
import numpy as np

arr = np.array(json.load(open("array.txt", "r")))
或者,如果数据是字符串,请使用:

arr = np.array(json.loads(array_as_string))

可以使用
ast.literal\u eval()
函数对包含数组的文本字符串求值(“读取”),然后将其包装到numpy数组构造函数中,如下所示:

import ast
import numpy as np


# Option 1: From a text string.
a = np.array(ast.literal_eval(txt))

# Option 2: Directly from text file.
a = np.array(ast.literal_eval(open('np_array.txt').read()))

a.shape
>>> (1, 2, 3, 4)
设置:

txt = """[[[[0.17262284, 0.95086717, 0.01172171, 0.79262904],
[0.52454078, 0.16740103, 0.32694925, 0.78921072],
[0.77886716, 0.35550488, 0.89272706, 0.36761104]],
[[0.14336841, 0.94488079, 0.83388505, 0.02065268],
[0.31804594, 0.22056339, 0.84088501, 0.94994676],
[0.57845057, 0.12645735, 0.12628646, 0.05526736]]]]"""

你是如何创建这个文件的?当你“尝试使用np.loadtxt”时到底发生了什么。有文档记录的、内置的、安全版本的
eval
。以前从未见过。@DanielF-是的,一个非常有用/安全的工具。:-)