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

В этом уроке мы рассмотрим операцию “транспонирование матрицы” и как она выполняется на 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.

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

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

Ваш адрес email не будет опубликован.