1
の対称性を利用して、Bは、それは小さなnumpyの配列で構成され、Aは、さまざまな方法でひっくり返さ:は、大規模な配列を作りたい大numpyのアレイ
B[0,:,:,:,:] = A
B[1,:,:,:,:] = B[0,:,::-1,:,:]
B[2:4,:,:,:,:] = B[0:2,:,:,::-1,:]
B[4:8,:,:,:,:] = B[0:4,:,:,:,::-1]
は唯一の店舗Aに方法はありますメモリが、Bのためのnumpy配列の機能のいくつかを保つか?私は二つのことで、主に興味があった:
- 、すなわちB [M、N、...] * = C B.SHAPE [2([... M、N、] Bを拡張することができます。 ] == C.shape)
- 二次元(すなわちnp.sum(B、軸=(2,3,4))まで可能な合計となる)
どのような機能が必要ですか?広い範囲の操作はあなたの対称性を損なう可能性があります(したがって、対称性を利用することで得られる利益)。 – mgilson
2次元の場合、ブロック行列の概念があります。マトリックスの一部に対する特定の演算を実行し、それらの演算の結果をキャッシュする。したがって、個々のブロックで操作を結合すると、それらを一度実行して、キャッシュされたバージョンを使用することができます。私はテンソルにいくつかの一般化があると確信していますが、あなたはいくつかの研究をする必要があります。ですから、これは確かに可能ですが、@ mgilsonが指摘するように、それは特定の操作にのみ役立ちます。 –
@mgilson、あなたが正しいので、私が探していた主な機能で質問を更新しました。 – dfreese