Различные операции с матрицей Python NumPy могут включать сложение с помощью оператора add() или +, вычитание с помощью оператора subtract() или –, умножение с помощью оператора dot() или *, деление с помощью функции разделения(), или мы можем транспонировать матрицу с помощью T или transpose, инверсия с помощью linalg.inv() и степень с помощью linalg.matrix_power().
- Сложение матриц
- Вычитание матрицы
- Умножение матриц
- Операция деления матрицы
- Операция транспонирования
- С помощью обратной операции
- Мощность матрицы
Сложение матриц
Сложение матриц — это фундаментальная операция, при которой две матрицы одинаковых размеров складываются путем добавления соответствующих элементов с помощью Python NumPy.
Мы будем использовать функцию add() из библиотеки NumPy, чтобы добавить две матрицы в Python.
Пример. Рассмотрим ситуацию, когда нам нужно добавить две матрицы одинакового размера с помощью Python.
import numpy as np
day1_sales = np.array([[10, 20, 30]])
day2_sales = np.array([[15, 25, 35]])
total_sales = np.add(day1_sales, day2_sales)
print("Total sales over two days in each city:", total_sales)
Вывод:
Total sales over two days in each city: [[25 45 65]]

Таким образом, матричные операции Python NumPy складываются с помощью функции add() в Python.
Примечание. Мы можем просто использовать оператор + для добавления двух матриц в Python.
Вычитание матрицы
Условие вычитания матриц аналогично операции сложения, то есть матрицы должны быть одинакового размера. Функция subtract() из библиотеки NumPy в Python может помочь нам найти разницу между двумя матрицами.
Пример: давайте найдем разницу между двумя матрицами с помощью Python.
import numpy as np
day1_sales = np.array([[10, 20, 30]])
day2_sales = np.array([[14, 40, 10]])
profit = np.subtract(day2_sales, day1_sales)
print("Total profit in each sales category in two days:", profit)
Вывод:
Total profit in each sales category in two days: [[ 4 20 -20]]

Матричная операция вычитания Python NumPy с помощью функции subtract() в NumPy.
Примечание. Мы можем просто использовать оператор – для вычитания двух матриц в Python.
Умножение матриц
Умножение матриц в Python NumPy, также известное как скалярное произведение для двумерных массивов, — это не то же самое, что поэлементное умножение. Итак, мы будем использовать функцию dot(), которая принимает на вход две матрицы и создает одну матрицу в Python.
Единственное необходимое условие — количество столбцов в первой матрице должно быть равно количеству строк во второй матрице в Python.
Пример 1. Давайте возьмем две матрицы и перемножим их поэлементно с помощью функции dot() в Python.
import numpy as np
units_sold = np.array([
[30, 40],
[50, 60],
[70, 80]
])
pricing = np.array([
[10, 15, 20],
[22, 27, 30]
])
total_sales = np.dot(units_sold, pricing)
print("Total sales matrix:\n", total_sales)
Вывод:
Total sales matrix: [[1180 1530 1800] [1820 2370 2800] [2460 3210 3800]]

Пример 2. Мы также можем выполнять операции скалярного умножения с матрицей Python NumPy.
Операция скалярного умножения означает умножение каждого элемента матрицы NumPy на число. Мы можем выполнить эту операцию, используя оператор * в Python.
import numpy as np
distances_miles = np.array([[0, 2451, 789],
[2451, 0, 1745],
[789, 1745, 0]])
miles_to_km = 1.60934
distances_km = distances_miles * miles_to_km
print("Distances in Kilometers:\n", distances_km)
Вывод:
Distances in Kilometers: [[ 0. 3944.49234 1269.76926] [3944.49234 0. 2808.2983 ] [1269.76926 2808.2983 0. ]]

Таким образом, в Python NumPy матричные операции умножения выполняются с помощью функции dot() и оператора *.
Операция деления матрицы
Существует операция деления двух матриц с использованием функции np.divide() из библиотеки NumPy в Python.
Эта функция вызывается с двумя аргументами, которые, как ожидается, будут массивами (или чем-то, что можно преобразовать в массивы) одинаковой формы. Функция Separation() выполняет поэлементное деление между двумя массивами, то есть каждый элемент массива делится на соответствующий элемент другого массива в Python.
Пример: давайте создадим два массива и попробуем применить к ним операцию деления через Python.
import numpy as np
expenses_a = np.array([200, 400])
expenses_b = np.array([150, 300])
expense_ratio = np.divide(expenses_a, expenses_b)
print("Expense Ratio of Household A to B:\n", expense_ratio)
Вывод:
Distances in Kilometers: [[ 0. 3944.49234 1269.76926] [3944.49234 0. 2808.2983 ] [1269.76926 2808.2983 0. ]]

Операция транспонирования
Транспонирование матрицы означает переворачивание матрицы по диагонали. Строки становятся столбцами и наоборот. NumPy предоставляет метод transpose() или атрибут T для транспонирования матриц в Python.
Пример: здесь у нас есть матрица на Python, и мы хотим транспонировать ее и получить новую матрицу на Python.
import numpy as np
data = np.array([
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
])
transposed_data = data.T
print("Transposed matrix(States as columns):\n", transposed_data)
Вывод: реализация кода на Python со снимком экрана:
Transposed matrix(States as columns): [[10 40 70] [20 50 80] [30 60 90]]

С помощью обратной операции
Обратная матрица — это матрица, которая при умножении на исходную матрицу дает единичную матрицу.
В Python библиотека NumPy предоставляет простой метод вычисления обратной матрицы с помощью функции numpy.linalg.inv().
Пример: возьмем матрицу и попробуем инвертировать ее с помощью Python.
import numpy as np
A = np.array([[1, 9, 8],
[4, 5, 11],
[7, 6, 3]])
A_inv = np.linalg.inv(A)
print("The inverse of the matrix A is:\n", A_inv)
Вывод:
The inverse of the matrix A is: [[-0.11434978 0.0470852 0.132287 ] [ 0.14573991 -0.11883408 0.0470852 ] [-0.02466368 0.12780269 -0.06950673]]

Мощность матрицы
Степень матрицы — это математическая операция, при которой матрица умножается сама на себя определенное количество раз. В Python это можно легко сделать с помощью библиотеки NumPy, которая предоставляет для этой цели функцию numpy.linalg.matrix_power().
Пример: возьмем матрицу на Python и найдем ее квадрат с помощью Python.
import numpy as np
migration_matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
two_year_migration = np.linalg.matrix_power(migration_matrix, 2)
print("The power of the matrix is:\n" ,two_year_migration)
Вывод:
The power of the matrix is: [[ 30 36 42] [ 66 81 96] [102 126 150]]
