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)可以導入和導出多種格式,上面兩種是它支持的一些基本格式。通常不需要自定義輸出的代碼消耗,因為通常有其他平臺可以天真地(或有庫)讀取的可用格式。
希望這可以幫助。
添加回答
舉報