Numpy изменить / перезагрузить? - PullRequest
0 голосов
/ 24 февраля 2020

Скажем, у меня есть массив 2 x 8 x 3, например:

array([[[ 0,  1,  2],
    [ 1,  2,  3],
    [ 2,  3,  4],
    [ 3,  4,  5],
    [ 4,  5,  6],
    [ 5,  6,  7],
    [ 6,  7,  8],
    [ 7,  8,  9]],

   [[10, 11, 12],
    [11, 12, 13],
    [12, 13, 14],
    [13, 14, 15],
    [14, 15, 16],
    [15, 16, 17],
    [16, 17, 18],
    [17, 18, 19]]])

Как мне изменить его так, чтобы он стал массивом 8 x 2 x 3 с такими элементами, как

[[[ 0,  1,  2],
  [10, 11, 12]],
 [[ 1,  2,  3],
  [11, 12, 13]],
...

reshape(8, 2, 3) дает следующий результат, который мне не нужен:

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

   [[ 2,  3,  4],
    [ 3,  4,  5]],

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

   [[ 6,  7,  8],
    [ 7,  8,  9]],

   [[10, 11, 12],
    [11, 12, 13]],

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

   [[14, 15, 16],
    [15, 16, 17]],

   [[16, 17, 18],
    [17, 18, 19]]])

Если он работает для общего второго измерения (не только m = 2), даже лучше. Спасибо!

1 Ответ

1 голос
/ 24 февраля 2020

Поменяйте местами первые две оси.

np.swapaxes(a,0,1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...