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操作を行います。実用的なマトリックスサイズを制限します。私は現在、この大きな行列を不必要にコピーしていますが、これを置換のために簡単に回避できることを望みます。