2 回答
TA贡献1797条经验 获得超6个赞
我认为将其转换为列表结构将是最简单的。
我,在以下内容中添加了一个:
In [22]: astr=""" {
...: {-9,{{4,2},{5,6},{8,10}}},
...: {-2,{{3,6},{6,1}}},
...: {4,{{3,6},{6,1},{3,6},{6,1},{3,6},{6,1},{3,6},{6,1}}}
...: }"""
In [23]: astr1=astr.replace('{','[').replace('}',']').replace('\n','')
In [24]: astr1
Out[24]: ' [ [-9,[[4,2],[5,6],[8,10]]], [-2,[[3,6],[6,1]]], [4,[[3,6],[6,1],[3,6],[6,1],[3,6],[6,1],[3,6],[6,1]]] ]'
是各种字符串评估器。 eval始终可用。 ast更安全一些。json.loads(astr1)也有效。
In [25]: alist= eval(astr1)
In [26]: alist
Out[26]:
[[-9, [[4, 2], [5, 6], [8, 10]]],
[-2, [[3, 6], [6, 1]]],
[4, [[3, 6], [6, 1], [3, 6], [6, 1], [3, 6], [6, 1], [3, 6], [6, 1]]]]
如果它必须是一个数组,请执行以下操作:
In [27]: arr = np.array(alist)
In [28]: arr
Out[28]:
array([[-9, list([[4, 2], [5, 6], [8, 10]])],
[-2, list([[3, 6], [6, 1]])],
[4,
list([[3, 6], [6, 1], [3, 6], [6, 1], [3, 6], [6, 1], [3, 6], [6, 1]])]],
dtype=object)
这是 (3,2)。 arr[:,0]是一个整数数组,但arr[:,1]是一个列表数组。
genfromtxt默认情况下,尝试将输入转换为浮点数(它可以转换为nan)。它适用于csv- 一个整齐的字符串数量表,每行具有相同的列数。
TA贡献1802条经验 获得超10个赞
您可以使用Exportwith"JSON"或"PythonExpression"将数据导出到文件。其中任何一个都可以被 Python 直接读取。
下面我用它ExportString来演示。
和
x =
{
{-9, {{4, 2}, {5, 6}, {8, 10}}},
{-2, {{3, 6}, {6, 1}}},
{4, {{3, 6}, {6, 1}, {3, 6}, {6, 1}, {3, 6}, {6, 1}, {3, 6}, {6, 1}}}
};
然后
ExportString[x, "JSON", "Compact" -> True]
[[-9,[[4,2],[5,6],[8,10]]],[-2,[[3,6],[6,1]]],[4,[[3,6],[6,1],[3,6],[6,1],[3,6],[6,1],[3,6],[6,1]]]]
或者
ExportString[x, "PythonExpression"]
[[-9, [[4, 2], [5, 6], [8, 10]]], [-2, [[3, 6], [6, 1]]], [4, [[3, 6], [6, 1], [3, 6], [6, 1], [3, 6], [6, 1], [3, 6], [6, 1]]]]
Wolfram 语言(又名 Mathematica)可以导入和导出多种格式,上面两种是它支持的一些基本格式。通常不需要自定义输出的代码消耗,因为通常有其他平台可以天真地(或有库)读取的可用格式。
希望这可以帮助。
添加回答
举报