Различные операции с матрицей 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]]