numpy 配列を対角線順に平坦化する効率的な方法 (できればベクトル化された高速組み込み関数) を探しています。例えば:
A=np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b=flatten_diagonally(A)
b
する必要があります[7,4,8,1,5,9,2,6,3]
。
A
非常に大きな行列になるので、要素を個別に反復処理したくありません。同じ理由で、正しい順序ですべてのインデックスのリストを事前に準備したくありません。が大きく、結果も同じように大きくなるためA
、さらに多くのメモリを使用するソリューションは避けたいと思います。
平坦化する対角線のサブセットを指定できれば、さらに良いでしょう。たとえば、1 番目と 2 番目の対角線のみを平坦化すると、 が得られ[1,5,9,2,6]
ます。