Транспонированная матрица

Вычисления

Свойства транспонированной матрицы

  • Если матрица A имеет размер n×m, то транспонированная матрица AT имеет размер m×n;
  • (АТ)Т = А;
  • (кА)Т = кАТ;
  • (А+В)Т=АТ+БТ;
  • (АВ)Т = ВТ В.

Читайте также: Как умножить матрицу на число: правило, свойства, примеры

Алгоритм транспонирования матрицы

Транспонирование матрицы — это такая операция над ней, когда строки и столбцы меняются местами.

Если исходная матрица помечена как A, транспонированная обычно помечается как AT.

Пример
Найдем матрицу AT, исходная A которой выглядит так:

Пример матрицы

Решение:

Пример перестановки матриц

Примеры задач на транспонирование матриц

Пример 1. Найти транспонированную AT-матрицу матрицы

А = (  4  2 ) .
 9  0

Решение:

В = (  4  9 )
 2  0

Пример 2. Найдите транспонированную AT-матрицу матрицы

А = (  2  1 ) .
 -3  0
 4  -1

Решение:

В = (  2  -3  4 )
 1  0  -1

Пример 3. Найдите транспонированную AT-матрицу матрицы

А = (  2  -3  4 ) .
 1  0  -1

Решение:

В = (  2  1 )
 -3  0
 4  -1

Как транспонировать матрицу в Python

Метод 1. Транспонирование матрицы с помощью NumPy transpose()

Первый метод, который мы рассмотрим, — это использование библиотеки NumPy. NumPy в основном работает с массивами в Python, и для транспонирования мы можем вызвать метод transpose().

Давайте обо всем по порядку. Во-первых, нам нужно импортировать модуль NumPy как np.

Затем в ячейке с номером 25 мы создаем матрицу NumPy с именем arr_matrix.

В ячейке номер 26 мы вызываем метод transpose() для нашей матрицы, объекта arr_matrix, который мы создали ранее.

В ячейке номер 27 мы показываем исходную матрицу arr_matrix.

А в ячейке номер 28 — транспонированная матрица arr_transpose. Мы видим, что в результате мы получили именно то, что нам было нужно — транспонированную матрицу.

Метод 2. Использование метода numpy.transpose()

Мы также можем транспонировать массив в Python, используя numpy.transpose(). Когда мы это делаем, мы передаем массив методу transpose() в качестве аргумента.

В ячейке номер [29] мы создаем матрицу, используя матрицу NumPy, называемую arr_matrix.

Затем мы передаем arr_matrix в метод transpose() и сохраняем результат в новой переменной arr_transpose.

В ячейке номер [31] печатаем исходную матрицу arr_matrix.

А затем мы показываем транспонированный массив arr_transpose. Получаем результат, аналогичный тому, что мы получили в первом примере.

Метод 3. Транспонирование матрицы с использованием библиотеки SymPy

использование библиотеки SymPy — еще один подход к транспонированию матриц. Эта библиотека использует символьную математику для решения алгебраических задач.

Во-первых, конечно, нам нужно импортировать библиотеку SymPy. Он не поставляется с Python по умолчанию, поэтому вам необходимо установить его в своей системе, иначе код не будет работать.

В ячейке номер [34] создаем матрицу с помощью библиотеки sympy.

Затем в ячейке [35] мы вызываем функцию transpose(T) с точечным оператором и сохраняем результаты в новой переменной sympy_transpose.

В ячейке номер [36] печатаем исходную матрицу массива. А в ячейке номер [37] — транспонированная матрица sympy_transpose. Как видите, у нас есть транспонированная матрица.

Метод 4. Транспонирование матрицы с использованием вложенного цикла

В Python матрицу можно транспонировать без использования каких-либо библиотек. Для этого нам нужно использовать вложенные циклы.

Мы создаем массив, а затем второй (того же размера, что и первый) для хранения результатов после транспонирования. Важно отметить, что мы не всегда знаем размерность исходной матрицы. Поэтому мы создаем матрицу результата не напрямую, а используя размер исходной.

В ячейке номер [38] создаем матрицу и выводим ее на экран.

В следующей ячейке мы используем «Pythonic» способ, чтобы найти размер транспонированной матрицы, используя исходную. Мы используем генератор списков с вложенными циклами for.

В ячейке [40] мы запускаем два цикла for. Внешний цикл предназначен для строк, а вложенный цикл — для столбцов.

В ячейке номер [41] мы показываем исходную матрицу. А в ячейке [42] — транспонированная матрица trans_Matrix.

Метод 5. Использование генератора списка

Следующий метод, который мы рассмотрим, — использование генератора списков. Этот метод похож на предыдущий, использующий вложенные циклы, но более питонический. Можно сказать, что это более продвинутый способ транспонирования массива в одну строку кода без использования библиотек.

Сначала мы создаем матрицу m, используя вложенные списки.

Итак, в ячейке номер [44] мы используем вложенные циклы, как и в предыдущем примере. Но здесь мы делаем это в одну строку с помощью генератора списков. Также нет необходимости менять индексы [j][i] местами, как мы это делали в прошлый раз.

В следующей ячейке выводим исходную матрицу m. После этого в ячейке номер [42] выводим транспонированную матрицу trans_m. Как видите, желаемый результат достигнут.

Метод 6. Транспонирование матрицы с помощью pymatrix

Pymatrix — еще одна легковесная библиотека для матричных операций в Python. С его помощью мы можем выполнить транспонирование.

В ячейку номер [43] импортируем библиотеку pymatrix. Он не поставляется с Python по умолчанию, поэтому для правильной работы кода вам необходимо установить его в своей системе перед использованием.

Затем с помощью библиотеки pymatrix создаем матрицу (в ячейке [44]).

В ячейке с номером [45] мы вызываем метод trans() для нашей матрицы и сохраняем результаты в новую переменную pymatrix_transpose.

Далее мы отображаем исходную матрицу массива. А в ячейке номер [47] мы показываем уже транспонированную матрицу pymatrix_transpose. Как видите, код сработал корректно.

Метод 7. Использование метода zip

Zip — еще один метод транспонирования матриц.

В ячейке номер [63] мы создаем новый массив, используя вложенные списки.

В ячейке номер [64] переносим массив в zip с помощью оператора *. Мы вызываем каждую строку, а затем преобразуем эту строку в новый список, который становится транспонированной матрицей.

Транспонирование матрицы в программе Microsoft Excel

Процесс транспонирования

Транспонирование матриц — это процесс замены столбцов и строк местами. Транспонировать в Excel можно двумя способами: с помощью функции ТРАНСП и с помощью инструмента «Специальная вставка». Рассмотрим каждый из этих вариантов более подробно.

Способ 1: оператор ТРАНСП

Функция ТРАНСП относится к категории операторов «Ссылки и массивы». Особенность в том, что, как и у других функций, работающих с массивами, результатом выдачи является не содержимое ячейки, а весь массив данных. Синтаксис функции достаточно прост и выглядит так:

=ПРОЗРАЧ(массив)

То есть единственным аргументом этого оператора является ссылка на массив, в нашем случае массив, который необходимо преобразовать.

Давайте посмотрим, как можно использовать эту функцию на примере с реальной матрицей.

  1. Выбираем на листе пустую ячейку, которая планируется как верхняя левая ячейка трансформируемой матрицы. Затем щелкните значок «Вставить функцию», расположенный рядом с панелью формул.Переключитесь на мастер функций в Microsoft Excel
  2. Мастер функций запущен. Откройте в нем вкладку «Связи и массивы» или «Полный алфавитный список». После того, как мы нашли название «TRANSP», выделяем его и нажимаем кнопку «ОК».Перейдите к аргументам функции ТРАНСП в Microsoft Excel
  3. Откроется окно Аргументы функции TRANSPOSE. Единственный аргумент этого оператора соответствует полю «Массив». Вы должны ввести координаты матрицы, чтобы перевернуться в нее. Для этого установите курсор в поле и, удерживая левую кнопку мыши, выделите всю область матрицы на листе. После того, как адрес области отобразится в окне аргументов, нажмите кнопку «ОК».Окно аргумента функции ТРАНСПОЗИРОВАТЬ в Microsoft Excel
  4. Но как видите, в ячейке, предназначенной для вывода результата, отображается неверное значение в виде ошибки «#ЗНАЧ!». Это связано с особенностями работы операторов массива. Чтобы исправить эту ошибку, мы выделяем диапазон ячеек, в котором количество строк должно равняться количеству столбцов в исходном массиве, а количество столбцов должно равняться количеству строк.
  5. Это соответствие очень важно для корректного отображения результата. В этом случае ячейка, содержащая фразу «#ЗНАЧ!» должна быть верхняя левая ячейка выбираемой матрицы, и именно с этой ячейки следует начинать процедуру выбора, удерживая левую кнопку мыши. Сделав выбор, поместите курсор в строку формул сразу после выражения оператора ТРАНСП, которое вы хотите отобразить в ней. После этого для выполнения расчета не нажимайте кнопку Enter, как обычно в обычных формулах, а наберите комбинацию Ctrl+Shift+Enter.Расширить действие функции ТРАНСП на весь диапазон в Microsoft Excel
  6. После этих действий матрица показывалась как нам нужно, то есть в транспонированном виде. Но есть еще одна проблема. Дело в том, что теперь новый массив представляет собой массив, связанный формулой, которую нельзя изменить. Если вы попытаетесь внести изменения в содержимое массива, появится ошибка. Некоторых пользователей такое состояние вполне устраивает, так как они не будут вносить никаких изменений в матрицу, а другим нужна матрица, с которой они смогут полноценно работать.Чтобы решить эту проблему, выберите всю транспонированную область. Перейдите на вкладку «Главная», нажмите значок «Копировать», который находится на ленте в группе «Буфер обмена». Вместо указанного действия, по желанию, можно указать сочетание клавиш по умолчанию для копирования Ctrl+C.

    Скопировать в MicrosoftExcel

  7. Затем, не снимая выделение с транспонируемой области, кликаем по нему правой кнопкой мыши. В контекстном меню в группе «Параметры вставки» нажмите иконку «Значения», которая выглядит как иконка с изображением цифр. Вставить в Microsoft ExcelПосле этого формула массива ТРАНСП будет удалена, а в ячейках останется только одно значение, с которым можно работать так же, как и с исходным массивом.

Значения вставлены в Microsoft Excel

Способ 2: транспонирование матрицы с помощью специальной вставки

Кроме того, матрицу можно транспонировать с помощью простого пункта всплывающего меню «Специальная вставка».

  1. Выберите исходную матрицу курсором, удерживая левую кнопку мыши. Затем перейдите на вкладку «Главная», нажмите на иконку «Копировать» в блоке настроек «Буфер обмена». Копирование матрицы в Microsoft ExcelВместо этого вы можете сделать это по-другому. Выделив область, щелкните ее правой кнопкой мыши. Активируется контекстное меню, где следует выбрать пункт «Копировать».

    Скопируйте матрицу через контекстное меню в Microsoft Excel

    В качестве альтернативы двум предыдущим вариантам копирования, если вы выберете, вы можете нажать сочетание клавиш Ctrl + C.

  2. Выделяем на листе пустую ячейку, которая станет левым верхним элементом транспонируемой матрицы. Щелкаем по нему правой кнопкой мыши. Это активирует контекстное меню. В нем проходим элемент «Вставить специальный». Появится еще одно небольшое меню. В нем также есть пункт под названием «Специальная вставка…». Щелкаем по ней. Также можно, сделав выбор, вместо вызова контекстного меню набрать на клавиатуре комбинацию Ctrl+Alt+V.Перейти к специальной вставке в Microsoft Excel
  3. Активируется окно Специальная вставка. Существует множество вариантов выбора способа вставки ранее скопированных данных. В нашем случае приходится оставлять почти все настройки по умолчанию. Только рядом с параметром «Транспонировать» стоит поставить галочку. Затем нужно нажать на кнопку «ОК», которая находится внизу этого окна.Специальная вставка в Microsoft Excel
  4. После этих действий транспонированная матрица появится в заранее выбранной части листа. В отличие от предыдущего способа, мы уже получили полноценную матрицу, которую можно изменить, как исходный код. Никаких дополнительных доработок или преобразований не требуется.Матрица, транспонированная в Microsoft Excel
  5. Но при желании, если исходная матрица вам не нужна, ее можно удалить. Для этого выберите его курсором, зажав левую кнопку мыши. Затем щелкните правой кнопкой мыши на выбранном элементе. В открывшемся после этого контекстном меню выберите пункт «Удалить содержимое».

Удалить исходную матрицу в Microsoft Excel

После этих действий на листе останется только преобразованная матрица.

Одна матрица на лист в Microsoft Excel

Теми же двумя рассмотренными выше способами можно транспонировать в Excel не только матрицы, но и полноценные таблицы. Процедура будет практически идентична.

Итак, мы выяснили, что в программе Excel матрицу можно транспонировать, то есть перевернуть, поменяв местами столбцы и строки двумя способами. Первый вариант предполагает использование функции ТРАНСП, а второй использует инструменты «Специальная вставка». По большому счету конечный результат, полученный при использовании обоих этих способов, ничем не отличается. Оба метода работают почти во всех ситуациях. Так что при выборе варианта конвертации на первый план выходят личные предпочтения конкретного пользователя. То есть, какой из этих способов лично вам удобнее, пользуйтесь им.

Оцените статью
Блог о Microsoft Word