5
在numpy中就地置换矩阵
我想通过使用python的numpy库更改其若干行和列的顺序来就地修改密集的正方形转换矩阵。从数学上讲,这对应于将矩阵乘以置换矩阵P并将其乘以P ^ -1 = P ^ T,但这并不是计算合理的解决方案。 现在,我正在手动交换行和列,但是我希望numpy有一个不错的函数f(M,v),其中M具有n行和列,而v具有n项,以便f(M,v)更新M根据索引排列v。也许我只是在搜索互联网上失败了。 numpy的“高级索引”可能会发生这种情况,但是我的理解是这样的解决方案不会就位。同样,对于某些简单情况,仅跟踪索引排列可能就足够了,但是在我的情况下这并不方便。 补充: 有时当人们谈论排列时,它们仅表示对随机排列进行采样,例如,这是在统计中获取p值的过程的一部分。或者,它们的意思是计数或枚举所有可能的排列。我不是在谈论这些事情。 补充: 矩阵足够小以适合桌面RAM,但又足够大,我不想深思熟虑地复制它。实际上,我想使用尽可能大的矩阵,但我不想处理无法将其保存在RAM中的不便,并且我会对矩阵执行O(N ^ 3)LAPACK运算,这也会限制实际矩阵的大小。我目前不必要地复制这么大的矩阵,但我希望可以很容易地避免这种排列的情况。