Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
375 of 541 menu
◀ ▶

Метод transpose

Метод transpose класса ndarray возвращает транспонированную версию массива. Для двумерных массивов операция аналогична стандартному транспонированию матриц, когда строки становятся столбцами. Для многомерных массивов метод позволяет произвольно переставлять оси с помощью кортежа осей или сокращённо через атрибут T. Метод возвращает новый массив, а не изменяет исходный.

Синтаксис

arr.transpose([axes])

Необязательный параметр axes - это кортеж целых чисел, определяющий новый порядок осей. Если параметр не передан, метод транспонирует массив, меняя все оси местами в обратном порядке.

Пример

Давайте создадим двумерный массив и транспонируем его с помощью метода transpose:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) res = arr.transpose() print(res)

Результат выполнения кода:

[[1 4] [2 5] [3 6]]

В результате исходная матрица размера 2x3 превратилась в матрицу размера 3x2.

Пример

Транспонирование можно выполнить короче с помощью атрибута T, который работает аналогично:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) res = arr.T print(res)

Результат выполнения кода:

[[1 4] [2 5] [3 6]]

Атрибут T возвращает тот же результат, но не принимает аргументов для перестановки осей.

Пример

Для трёхмерного массива можно явно указать новый порядок осей. Создадим трёхмерный массив и переставим оси с помощью кортежа:

import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) res = arr.transpose((1, 0, 2)) print(res)

Результат выполнения кода:

[[[1 2] [5 6]] [[3 4] [7 8]]]

Кортеж (1, 0, 2) означает, что ось 1 становится первой осью, ось 0 - второй, а ось 2 остаётся на месте. Такой подход удобен для работы с многомерными данными, где оси могут иметь различный смысл.

Пример

Если вызвать transpose без параметров для трёхмерного массива, оси меняются местами в обратном порядке:

import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) res = arr.transpose() print(res)

Результат выполнения кода:

[[[1 5] [3 7]] [[2 6] [4 8]]]

Оси поменялись местами в порядке (2, 1, 0), что соответствует полной перестановке.

Смотрите также

  • метод reshape,
    который изменяет форму массива без перестановки осей
  • метод swapaxes,
    который меняет местами две указанные оси
  • атрибут T,
    который возвращает транспонированную версию массива без параметров
  • атрибут shape,
    который возвращает кортеж размерностей массива
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить