-1
私は、より大きな2次元行列のサブセットとして2次元行列を保存する関数を書いています。 einsumの結果が行列E(3行目から最後の行)に格納されていないことを除いて、すべてのコードが正しく動作しているようです。どのようにこれを修正するための任意の提案?インデクシングnumpy配列が機能しない
def two_cycles(A):
nonzeroSubset = np.diag(la.matrix_power(A,4) - la.matrix_power(A,2))
x = np.argsort(nonzeroSubset)[:100]
subset = A[x,:][:,x]
n = len(A)
E = np.zeros((n,n))
E[x][:,x] = np.einsum('ij,ji->ij',subset,subset)
fourCycles = np.array(np.nonzero(E)).T
return fourCycles
サンプルプログラムを、わずか2次元で動作するものにまで減らすことはできますか?デバッグするのがずっと楽になるかもしれません。 –
私はこの例を更新しました。 – user3394045
"E [x] [:、x、:、:] [:、:、x、:] [:、:、:x] = ..." - 大丈夫です。インデックス作成のルール。それはあなたが割り当てたいもののコピーのコピーのコピーに割り当てます。 – user2357112