В этом уроке мы рассмотрим операцию “транспонирование матрицы” и как она выполняется на Python. Также разберем на примерах свойства этой операции.
Транспонирование матрицы
Транспонирование матрицы – это процесс замены строк матрицы на ее столбцы, а столбцов соответственно на строки. Полученная в результате матрица называется транспонированной. Символ операции транспонирования – буква T.
➣ Численный пример
Для исходной матрицы:
Транспонированная будет выглядеть так:
➤ Пример на 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. Дважды транспонированная матрица равна исходной матрице:
➣ Численный пример
➤ Пример на 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. Транспонирование суммы матриц равно сумме транспонированных матриц:
➣ Численный пример
➤Пример на 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. Транспонирование произведения матриц равно произведению транспонированных матриц расставленных в обратном порядке:
➣ Численный пример
➤ Пример на 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. Транспонирование произведения матрицы на число равно произведению этого числа на транспонированную матрицу:
➣ Численный пример
➤ Пример на 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. Определители исходной и транспонированной матрицы совпадают:
➣ Численный пример
➤ Пример на 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”.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.