簡體   English   中英

將4d numpy數組重塑為2d數組,同時保留數組位置

[英]Reshape 4d numpy array to 2d array while preserving array locations

我有一個4維numpy形狀的陣列(N, N, Q, Q) 因此,給定行和列索引(i, j)mat[i,j]QxQ矩陣。 我想重塑這個數組來塑造(N*Q, N*Q)這樣

array([[[[ 0,  1],
         [ 2,  3]],

        [[ 4,  5],
         [ 6,  7]]],


       [[[ 8,  9],
         [10, 11]],

        [[12, 13],
         [14, 15]]]])

array([[  0.,   1.,   4.,   5.],
       [  2.,   3.,   6.,   7.],
       [  8.,   9.,  12.,  13.],
       [ 10.,  11.,  14.,  15.]])

你可以看到mat[0,0]轉到new_mat[0:2, 0:2] 目前mat.reshape(N*Q, N*Q)mat[0,0]帶到new_mat[0:4, 0] (這是我不想要的)。 我如何使用reshape或rollaxis或類似的東西來重塑這個數組? 我最終想用imshow繪制它,我目前卡住了。 我覺得很容易做到,我還沒想出來。

沒關系,我明白了。 np.swapaxes(1, 2)是我需要的缺失部分。

答案就是做mat.swapaxes(1, 2).reshape(N*Q, N*Q)

在沒有試圖弄清楚自己太長時間的情況下發帖感到愚蠢,但是我會把它留下來以便其他人可以從中受益。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM