作者stanley20 (苏丹利)
看板Python
标题[问题] n个2d-array撷取问题
时间Mon Apr 6 16:44:25 2020
大家好,有个棘手的问题想要请教各位
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来执行
但由於不太熟悉,不知道该怎麽解决
目前想法很乱,没有一个方向
不知道各位有什麽见解呢
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.45.13.120 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1586162667.A.5E5.html
1F:推 TitanEric: 不知道有没有误会 这个不是tensor的transpose吗 04/06 18:03
2F:→ watashino: 跟楼上想法一样,如果原本的n个2d array都一样大的话, 04/06 22:49
3F:→ watashino: 把整个array变成3d array然後transpose一下应该就可以 04/06 22:49
4F:→ watashino: 了 04/06 22:49