Mam czterowymiarowy zbiór numpy o rozmiarze (N, N, Q, Q)
. Tak więc biorąc pod uwagę indeks wiersza i kolumny (i, j)
, mat[i,j]
jest macierzą QxQ
. Chcę przekształcić tę tablicę kształtować (N*Q, N*Q)
takie, żeZmień zniekształconą macierz 4d w tablicę 2d, zachowując lokalizacje w tablicach.
array([[[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]]],
[[[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15]]]])
idzie
array([[ 0., 1., 4., 5.],
[ 2., 3., 6., 7.],
[ 8., 9., 12., 13.],
[ 10., 11., 14., 15.]])
Widać, że mat[0,0]
idzie new_mat[0:2, 0:2]
. Obecnie mat.reshape(N*Q, N*Q)
trwa mat[0,0]
do new_mat[0:4, 0]
(czego nie chcę). Jak mogę użyć przekształcenia lub rollaxis lub czegoś podobnego do przekształcenia tej tablicy? W końcu chcę go wykreślić za pomocą imshow
, jestem obecnie zablokowany. Myślę, że to łatwe, po prostu jeszcze tego nie rozgryzłem.