Доброго времени суток! Сегодня хочу показать пример работы с матрицами в языке программирования Python.
Надо дать определение, что такое матрица.
Матрица — это прямоугольная таблица чисел. Эти числа называют элементами матрицы.
Матрицы обозначают большими буквами латинского алфавита:
Как и в любой таблице, в матрице есть строки и столбцы. Их количество определяет размер (порядок) матрицы. Сначала пишут количество строк, потом количество столбцов. Например, матрица K состоит из двух строк и трёх столбцов. Это матрица размера 2×3, что читается как «матрица размера два на три» или просто «матрица два на три».
Каждый элемент матрицы обозначают двумя числами: первое — номер строки, в которой он расположен, второе — номер столбца. Этот адрес определён для каждого элемента единственным образом, менять числа местами нельзя.
Элемент k12 матрицы K стоит в первой строке, втором столбце. Он равен −6. А элемент k21 находится во второй строке, первом столбце. Он равен 11.
В виде матриц часто представляют наборы данных: каждая строка — описание одного объекта, каждый столбец — какой-либо признак объекта. При этом текстовые данные для удобства превращают в числовые. Например, можно взять рейтинг фильмов, дать номера жанрам и странам производства и записать всё матрицей. В строках будут отдельные фильмы, а в столбцах — жанры, страны, места в рейтинге.
Виды матриц
Итак, матрица — это таблица чисел. В таком виде можно записать и вектор, получится таблица в одну строку или в один столбец.
Вектор-строка — это матрица, в которой 1строка и n столбцов, то есть матрица размера 1×n.
Вектор-столбец — это матрица, в которой 1 столбец и n строк. Её размер — n×1.
И то, и другое по сути частные случаи прямоугольной матрицы. Любая матрица будет либо прямоугольной, либо квадратной.
В прямоугольной матрице количество строк не совпадает с количеством столбцов. В квадратной количество строк и столбцов совпадает.
Элементы матриц можно рассматривать не только по строкам и столбцам, но и по диагоналям. В квадратной матрице можно выделить диагонали, элементы которых охватывают все столбцы и строки матрицы.
Главная диагональ квадратной матрицы — диагональ, идущая из левого верхнего угла в правый нижний угол.
Побочная диагональ квадратной матрицы — диагональ, идущая из правого верхнего угла в левый нижний угол.
Квадратная матрица называется диагональной, если все её ненулевые элементы расположены на главной диагонали.
Теперь вернемся к примеру умножения матриц.
Допустим, мы умножили A на B и получили результат C. Его элемент c11 — это скалярное произведение первой строки матрицы A и первого столбца матрицы B элемент c12 — скалярное произведение первой строки матрицы A и второго столбца матрицы B. И так далее. Часто результат C записывают просто как AB.
Пример умножения матриц в языке программирования Python :
import numpy as np
d = np.array([
[-6, 3, 2],
[0, 7, 11],
[4, 9, 2],
[1, -8, 3]
])
u = np.array([
[12, 6, -2, 8],
[5, 9, -1, 3],
[7, 12, 0, 5]
])
du = d @ u
print("Произведение DU:")
print(du)
Результат:
Произведение DU:
[[-43 15 9 -29]
[112 195 -7 76]
[107 129 -17 69]
[ -7 -30 6 -1]]
Здесь используется библиотека numpy. Она подключается оператором import -"import numpy as np". Затем создаются две матрицы d и u, d = np.array([...]), u = np.array([...]), заносятся элементы матрицы(числа).
Следом идет строка, где мы создаем переменную du= d @ u, оператор @ умножает матрицы, при помощи оператора print(du), мы выводим результат вычислений.
Для того чтобы , библиотека numpy заработала необходимо установить ее сначала , командой pip install numpy и убедитесь , что используете последнюю версию Python. Команду необходимо вводить в cmd.exe.
В других ОС, существуют подобные командные строки, я работаю в операционной системе Windows.
Чтобы запустить этот код в среде разработки Python нужно в меню выбрать пункт File->New File, в появившемся окне набрать код или скопировать его туда, проверить ошибки, в меню появившегося окна выбрать Run->Run Module, программа выполнится.
Вот-так, относительно просто можно перемножить две матрицы в языке программирования Python.
Даю ссылку на другую мою статью, про сложение матриц: https://dzen.ru/media/id/5f572502b7204709f04ab67c/primer-slojeniia-matric-v-iazyke-programmirovaniia-python-63fc7c4858d1596127634dcf
И еще одна ссылка: обратная матрица+ транспонирование ее: https://dzen.ru/media/id/5f572502b7204709f04ab67c/primer-vychisleniia-obratnoi-matricy-v-kode-na-iazyke-programmirovaniia-python-640ae49697036f7610331184
Маленькая просьба, поставить лайк в Дзене, если Вам понравилась публикация и подписаться, это поможет развитию канала: https://dzen.ru/id/5f572502b7204709f04ab67c