[問題] n個2d-array擷取問題

作者: stanley20 (蘇丹利)   2020-04-06 16:44:25
大家好,有個棘手的問題想要請教各位
a) 問題解釋:
我目前有個n個2d-array放在一起
大概像是這樣
array([[[1, 2, 3],
[3, 4, 5],
[7, 8, 9]],
[[1, 3, 7],
[2, 4, 8],
[3, 5, 9]],
...
])
那麼我想要擷取出每一列,形成新的矩陣
也就是想使用vstack 讓 array[0][0]與array[1][0]形成新的矩陣(2*3)
那麼每個矩陣的每一列來配對,於是就會有9個矩陣
那我今天有n個矩陣,每個矩陣是m列
那麼就會有 m^n 個矩陣
如果文字不好理解的話,以下是圖示
https://i.imgur.com/26WMeut.jpg
https://i.imgur.com/7QxzWPg.jpg
b) 問題所在
由於n數量不確定,但會很大
而且需要遍歷每個矩陣
並且 m^n 太大
我測試過10列 6個矩陣 也就是 10^6 個矩陣 以1個cpu來執行
大概是60s
換算成我需要的矩陣 大約是 10^17
我估算用幾千個cpu大概都做不完
此外有搜尋過numba,試圖想使用gpu來執行
但由於不太熟悉,不知道該怎麼解決
目前想法很亂,沒有一個方向
不知道各位有什麼見解呢
感謝
作者: TitanEric (泰坦)   2020-04-06 18:03:00
不知道有沒有誤會 這個不是tensor的transpose嗎
作者: watashino (我同學數學很爛)   2020-04-06 22:49:00
跟樓上想法一樣,如果原本的n個2d array都一樣大的話,把整個array變成3d array然後transpose一下應該就可以了

Links booklink

Contact Us: admin [ a t ] ucptt.com