Линейная алгебра на Python. [Урок 2]. Транспонирование Матрицы

Автор: | 27.03.2019

В этом уроке мы рассмотрим операцию “транспонирование матрицы” и как она выполняется на Python. Также разберем на примерах свойства этой операции.

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

Транспонирование матрицы – это процесс замены строк матрицы на ее столбцы, а столбцов соответственно на строки. Полученная в результате матрица называется транспонированной. Символ операции транспонирования – буква T.

➣ Численный пример

Для исходной матрицы:

linal-lesson2-pic1

Транспонированная будет выглядеть так:

linal-lesson2-pic2

➤ Пример на Python

Решим задачу транспонирования матрицы на Python. Создадим матрицу A:

>>> A = np.matrix('1 2 3; 4 5 6')
>>> print(A)
[[1 2 3]
[4 5 6]]

Транспонируем матрицу с помощью метода transpose():

>>> A_t = A.transpose()
>>> print(A_t)
[[1 4]
[2 5]
[3 6]]

Существует сокращенный вариант получения транспонированной матрицы, он очень удобен в практическом применении:

>>> print(A.T)
[[1 4]
[2 5]
[3 6]]

Рассмотрим на примерах свойства транспонированных матриц. Операции сложения и умножение матриц, а также расчет определителя более подробно будут рассмотрены в последующих уроках.

Свойство 1. Дважды транспонированная матрица равна исходной матрице:

linal-lesson2-pic3

Численный пример

linal-lesson2-pic4

Пример на Python

>>> A = np.matrix('1 2 3; 4 5 6')
>>> print(A)
[[1 2 3]
[4 5 6]]

>>> R = (A.T).T
>>> print(R)
[[1 2 3]
[4 5 6]]

Свойство 2. Транспонирование суммы матриц равно сумме транспонированных матриц:

linal-lesson2-pic5

➣ Численный пример

linal-lesson2-pic6

➤Пример на Python

>>> A = np.matrix('1 2 3; 4 5 6')
>>> B = np.matrix('7 8 9; 0 7 5')
>>> L = (A + B).T
>>> R = A.T + B.T
>>> print(L)
[[ 8  4]
[10 12]
[12 11]]
>>> print(R)
[[ 8  4]
[10 12]
[12 11]]

Свойство 3. Транспонирование произведения матриц равно произведению транспонированных матриц расставленных в обратном порядке:

linal-lesson2-pic7

Численный пример

linal-lesson2-pic8

➤ Пример на Python

>>> A = np.matrix('1 2; 3 4')
>>> B = np.matrix('5 6; 7 8')
>>> L = (A.dot(B)).T
>>> R = (B.T).dot(A.T)
>>> print(L)
[[19 43]
[22 50]]
>>> print(R)
[[19 43]
[22 50]]

В данном примере, для умножения матриц, использовалась функция dot() из библиотеки Numpy.

Свойство 4. Транспонирование произведения матрицы на число равно произведению этого числа на транспонированную матрицу:

linal-lesson2-pic9

➣ Численный пример

linal-lesson2-pic10

➤ Пример на Python

>>> A = np.matrix('1 2 3; 4 5 6')
>>> k = 3
>>> L = (k * A).T
>>> R = k * (A.T)
>>> print(L)
[[ 3 12]
[ 6 15]
[ 9 18]]
>>> print(R)
[[ 3 12]
[ 6 15]
[ 9 18]]

Свойство 5. Определители исходной и транспонированной матрицы совпадают:

linal-lesson2-pic11

➣ Численный пример

linal-lesson2-pic12

➤ Пример на Python

>>> A = np.matrix('1 2; 3 4')
>>> A_det = np.linalg.det(A)
>>> A_T_det = np.linalg.det(A.T)
>>> print(format(A_det, '.9g'))
-2
>>> print(format(A_T_det, '.9g'))
-2

Ввиду особенностей Python при работе с числами с плавающей точкой, в данном примере вычисления определителя рассматриваются только первые девять значащих цифр после запятой (за это отвечает параметр  ‘.9g’).

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Книга: Pandas. Работа с данными

Поделиться
Share on VK
VK
Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
Share on Google+
Google+

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Нажимая на кнопку "Отправить комментарий", я даю согласие обработку персональных данных и принимаю политику конфиденциальности.