第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將不規(guī)則形狀的數(shù)組導(dǎo)入 Python

將不規(guī)則形狀的數(shù)組導(dǎo)入 Python

函數(shù)式編程 2021-11-30 19:20:10
我有一些在 Mathematica 中生成的數(shù)據(jù),我需要將它們導(dǎo)入 Python。數(shù)據(jù)的生成方式依賴于符號計算,因此簡單地在 Python 中生成它是不可能的。數(shù)據(jù)是一個維度數(shù)組 (126,2) 但是,其中每個元素中的第一個位置是一個整數(shù),第二個位置是一個列表列表,并且元素之間的維度不是恒定的,例如:`    {    {-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}}}    }`將是前三個元素。每個元素中的第二個位置總是一個二維列表。這里的目標(biāo)是將這些數(shù)據(jù)作為一個 numpy 數(shù)組導(dǎo)入,這樣我就可以調(diào)用每個元素,無論它的位置如何。我取得了一些成功,numpy.genfromtxt("data.txt",delimiters="}}}")它為我提供了正確的形狀 (126,2),但每個元素都只是“nan”。我取得了更大的成功`with open("data.csv") as csvfile:     reader = csv.reader(csvfile, delimiter=' ')     for element in reader:         print(np.asarray(element)[0])`這給了我作為數(shù)組的整數(shù)值,這很棒!對于我嘗試過的每個元素中的第二個位置:`def replace_all(text, dic):    for i, j in dic.items():        text = text.replace(i, j)    return textd={"{":"[","}":"]"}with open("spinweights.csv") as csvfile:     reader = csv.reader(csvfile, delimiter=',')     it=0     for element in reader:         while it<1:             curlToSq=replace_all(str(element[1]),d)             print(np.asarray(curlToSq))`該replace_all函數(shù)正在更改方括號中的所有大括號(這里的想法是這樣可以更容易地轉(zhuǎn)換為 numpy 數(shù)組)。那里的最后一行確實返回了一個數(shù)組...形狀(),其中沒有一個對象可下標(biāo),這正是我所需要的!任何幫助表示贊賞。
查看完整描述

2 回答

?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

我認(rèn)為將其轉(zhuǎn)換為列表結(jié)構(gòu)將是最簡單的。


我,在以下內(nèi)容中添加了一個:


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]]]]

如果它必須是一個數(shù)組,請執(zhí)行以下操作:


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]是一個整數(shù)數(shù)組,但arr[:,1]是一個列表數(shù)組。


genfromtxt默認(rèn)情況下,嘗試將輸入轉(zhuǎn)換為浮點數(shù)(它可以轉(zhuǎn)換為nan)。它適用于csv- 一個整齊的字符串?dāng)?shù)量表,每行具有相同的列數(shù)。


查看完整回答
反對 回復(fù) 2021-11-30
?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

您可以使用Exportwith"JSON"或"PythonExpression"將數(shù)據(jù)導(dǎo)出到文件。其中任何一個都可以被 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)可以導(dǎo)入和導(dǎo)出多種格式,上面兩種是它支持的一些基本格式。通常不需要自定義輸出的代碼消耗,因為通常有其他平臺可以天真地(或有庫)讀取的可用格式。


希望這可以幫助。


查看完整回答
反對 回復(fù) 2021-11-30
  • 2 回答
  • 0 關(guān)注
  • 236 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號