[问题] 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