[英]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.