8

我有一个 4 维 numpy 数组 shape (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,目前被卡住了。我认为这很容易做到,只是我还没有弄清楚。

4

1 回答 1

7

没关系,我想通了。np.swapaxes(1, 2)是我需要的缺失部分。

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

觉得自己发帖太愚蠢了,但我自己也想不明白,但我会保留它,以便其他人可以从中受益。

于 2013-10-29T20:19:51.017 回答