
[code]

    Z=[[array([1,2,3]),array([9,8]),array([0,2,5,6])],
    [array([4,5,6]),array([7,2]),array([1,2,2,1])],
    [array([10,6,8]),array([17,11]),array([15,0,1,3])]]
    
[/code]

[code]

    Z=[array([1,2,3,9,8,0,2,5,6]),
    array([4,5,6,7,2,1,2,2,1]),
    array([10,6,8,17,11,15,0,1,3])]
    
[/code]

上記のように変換したいです。  
この例Zのサイズは(3,3)で中身が(3,2,4)ですが、実際のZのサイズは、(1947806,17)でその中身は(61,93,43,36,,,)となるくらい大きなリスト（変換後のZのサイズは(1947806)で中身が726となる予定）ですので、Memory
Errorとならない方法をご教示いただければ大変助かります。  
（Memory Errorとなる方法であれば自分でも回すことはできました）

※追記  
下記でアドバイス頂いたmap()ですと、変換後のZをその後ループ文で毎回読み込む必要があるため膨大な所要時間となってしまいます。  
（かれこれ20時間位、メモリとディスクをフルに使用しています）  
他に方法がございましたらご教示いただけますと大変助かります。  
参考として、Zを変換したあとは以下のようなコードとなっております。  

[code]

    Factor=[]
    for w in range(len(Result)): #len(Result)はlen(Z2)と同じく1947806
        Z2=map(np.concatenate, Z)
        x = np.array(list(Z2)[w])[:, np.newaxis]
        y=(x*yy).sum() #yyは(726,8)のデータフレーム
        z=np.sum(np.array(np.abs((y-b)))) #bは(1,8)のデータフレーム
        Factor.append([y['A'],y['B'],y['C'],y['D'],z,zz[w],xx[w]]) #zz,xxは長さ1947806のデータシリーズ
    
[/code]


CC BY-SA 4.0
2018-11-09T14:18:10.780
50136
2018-11-13T17:09:27.830
2018-11-13T17:09:27.830
3060
30914
question
python python3
3次元配列を2次元配列に変換