Что эквивалентно перестановке в Matlab (A, [3 2 1]) в Python?

4

Если A является массивом 2x2, что эквивалентно выражению в python для permute(A, [3 2 1]) в MATLAB?

Спасибо

  • 0
    Предполагая, что A представляет собой numpy массив shape (2,2)
  • 2
    Этот вопрос был бы НАМНОГО улучшен, если бы вы предоставили пример ввода и вывода. например, A = [[1, 2], [3, 4]] . Я хотел бы получить B = ...
Теги:
numpy
octave

1 ответ

7
Лучший ответ

Вы ищете numpy.transpose

np.transpose( np.expand_dims(A, axis=2), (2, 1, 0) )

Так как numpy не имеет ограничений по синтаксису по умолчанию, вам нужно явно добавить его с помощью np.expand_dims

Или иначе стенограмма для np.expand_dims(A, axis=2) равна A[:, :, None], поэтому

np.transpose(A[:, :, None], (2,1,0))
  • 0
    Вышеупомянутое утверждение выдает сообщение об ошибке, так как A - массив 2x2. Скажем, A = np.array ([[1,2], [3,4]]).
  • 0
    Затем np.transpose (a, (2,1,0)) выдает следующее сообщение об ошибке: ---------------------------- ----------------------------------------------- ValueError Traceback ( последний последний вызов) <ipython-input-3-c92b9f20f522> в <module> () ----> 1 np.transpose (a, (2,1,0)) / opt / local / Library / Frameworks / Python .framework / Versions / 2.7 / lib / python2.7 / site-packages / numpy / core / fromnumeric.pyc в transpose (a, axes) 535 за исключением AttributeError: 536 return _wrapit (a, 'transpose', axes) -> 537 return transpose (axes) ValueError: оси не соответствуют массиву
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню