Что такое матрица Python?
Матрица Python - это специализированный двумерный прямоугольный массив данных, хранящихся в строках и столбцах. Данные в матрице могут быть числами, строками, выражениями, символами и т. Д. Матрица - одна из важных структур данных, которую можно использовать в математических и научных расчетах.
В этом руководстве по Python вы узнаете:
- Что такое матрица Python?
- Как работают матрицы Python?
- Создание матрицы Python с использованием типа данных вложенного списка
- Для чтения данных внутри Python Matrix с помощью списка.
- Пример 2: Чтобы прочитать последний элемент из каждой строки.
- Пример 3: чтобы напечатать строки в матрице
- Добавление матриц с использованием вложенного списка
- Умножение матриц с использованием вложенного списка
- Создание матрицы Python с использованием массивов из пакета Python Numpy
- Матричная операция с использованием Numpy.Array ()
- Доступ к матрице NumPy
Как работают матрицы Python?
Данные внутри двумерного массива в матричном формате выглядят следующим образом:Шаг 1)
Он показывает матрицу 2x2. Он состоит из двух строк и двух столбцов. Данные внутри матрицы - числа. Строка1 имеет значения 2,3, а строка2 - 4,5. Столбцы, то есть col1, имеют значения 2,4, а col2 - значения 3,5.
Шаг 2)
Он показывает матрицу 2x3. Он состоит из двух строк и трех столбцов. Данные внутри первой строки, т.е. row1, имеют значения 2,3,4, а row2 имеет значения 5,6,7. Столбцы col1 имеют значения 2,5, col2 - значения 3,6, а col3 - значения 4,7.
Точно так же вы можете хранить свои данные внутри матрицы nxn в Python. Множество операций можно выполнять с матричным сложением, вычитанием, умножением и т. Д.
В Python нет простого способа реализовать матричный тип данных.
Матрица python использует массивы, и то же самое можно реализовать.
- Создайте матрицу Python с использованием типа данных вложенного списка
- Создание матрицы Python с использованием массивов из пакета Python Numpy
Создание матрицы Python с использованием типа данных вложенного списка
В Python массивы представлены с использованием типа данных списка. Итак, теперь воспользуемся списком для создания матрицы Python.
Мы создадим матрицу 3x3, как показано ниже:
- В матрице 3 строки и 3 столбца.
- Первая строка в формате списка будет иметь следующий вид: [8,14, -6]
- Вторая строка в списке будет: [12,7,4]
- Третья строка в списке будет: [-11,3,21]
Матрица внутри списка со всеми строками и столбцами показана ниже:
List = [[Row1],[Row2],[Row3]… [RowN]]
Итак, согласно матрице, указанной выше, тип списка с матричными данными выглядит следующим образом:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Для чтения данных внутри Python Matrix с помощью списка.
Мы будем использовать матрицу, определенную выше. Пример будет читать данные, печатать матрицу, отображать последний элемент из каждой строки.
Пример: напечатать матрицу
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]#To print the matrixprint(M1)
Выход:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Пример 2: Чтобы прочитать последний элемент из каждой строки.
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]matrix_length = len(M1)#To read the last element from each row.for i in range(matrix_length):print(M1[i][-1])
Выход:
-6421
Пример 3: чтобы напечатать строки в матрице
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]matrix_length = len(M1)#To print the rows in the Matrixfor i in range(matrix_length):print(M1[i])
Выход:
[8, 14, -6][12, 7, 4][-11, 3, 21]
Добавление матриц с использованием вложенного списка
Мы можем легко сложить две заданные матрицы. Матрицы здесь будут в виде списка. Давайте поработаем над примером, который позаботится о добавлении заданных матриц.
Матрица 1:
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]
Матрица 2:
M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]
Последний инициализирует матрицу, которая сохранит результат M1 + M2.
Матрица 3:
M3 = [[0,0,0],[0,0,0],[0,0,0]]
Пример: добавление матриц
Чтобы добавить, матрицы будут использовать цикл for, который будет проходить через обе указанные матрицы.
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]M3 = [[0,0,0],[0,0,0],[0,0,0]]matrix_length = len(M1)#To Add M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] + M2[i][k]#To Print the matrixprint("The sum of Matrix M1 and M2 = ", M3)
Выход:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Умножение матриц с использованием вложенного списка
Чтобы умножить матрицы, мы можем использовать цикл for для обеих матриц, как показано в приведенном ниже коде:
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]M3 = [[0,0,0],[0,0,0],[0,0,0]]matrix_length = len(M1)#To Multiply M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] * M2[i][k]#To Print the matrixprint("The multiplication of Matrix M1 and M2 = ", M3)
Выход:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Создание матрицы Python с использованием массивов из пакета Python Numpy
Библиотека Python Numpy помогает работать с массивами. Numpy обрабатывает массив немного быстрее по сравнению со списком.
Для работы с Numpy вам необходимо сначала установить его. Следуйте инструкциям ниже, чтобы установить Numpy.
Шаг 1)
Команда для установки Numpy:
pip install NumPy
Шаг 2)
Чтобы использовать Numpy в своем коде, вам необходимо импортировать его.
import NumPy
Шаг 3)
Вы также можете импортировать Numpy, используя псевдоним, как показано ниже:
import NumPy as np
Мы собираемся использовать метод array () от Numpy для создания матрицы Python.
Пример: массив в Numpy для создания матрицы Python
import numpy as npM1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])print(M1)
Выход:
[[ 5 -10 15][ 3 -6 9][ -4 8 12]]
Матричная операция с использованием Numpy.Array ()
Операция с матрицей, которая может быть выполнена, - это сложение, вычитание, умножение, транспонирование, чтение строк, столбцов матрицы, разрезание матрицы и т. Д. Во всех примерах мы будем использовать метод array ().
Добавление матрицы
Чтобы выполнить сложение с матрицей, мы создадим две матрицы с помощью numpy.array () и добавим их с помощью оператора (+).
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 + M2print(M3)
Выход:
[[ 12 -12 36][ 16 12 48][ 6 -12 60]]
Матричное вычитание
Чтобы выполнить вычитание матрицы, мы создадим две матрицы с помощью numpy.array () и вычтем их с помощью оператора (-).
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 - M2print(M3)
Выход:
[[ -6 24 -18][ -6 -32 -18][-20 40 -18]]
Умножение матриц
Сначала создадим две матрицы с помощью numpy.arary (). Чтобы умножить их, вы можете использовать метод numpy dot (). Numpy.dot () - это скалярное произведение матриц M1 и M2. Numpy.dot () обрабатывает 2D-массивы и выполняет умножение матриц.
Пример:
import numpy as npM1 = np.array([[3, 6], [5, -10]])M2 = np.array([[9, -18], [11, 22]])M3 = M1.dot(M2)print(M3)
Выход:
[[ 93 78][ -65 -310]]
Матрица транспонирования
Транспонирование матрицы вычисляется путем изменения строк как столбцов и столбцов как строк. Функцию transpose () из Numpy можно использовать для вычисления транспонирования матрицы.
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])M2 = M1.transpose()print(M2)
Выход:
[[ 3 5 4][ 6 -10 8][ 9 15 12]]
Нарезка матрицы
Нарезка вернет вам элементы из матрицы на основе заданного начального / конечного индекса.
- Синтаксис для нарезки - [начало: конец]
- Если начальный индекс не указан, он рассматривается как 0. Например, [: 5], это означает как [0: 5].
- Если конец не передан, он будет равен длине массива.
- Если начало / конец имеют отрицательные значения, нарезка будет выполняться с конца массива.
Прежде чем мы начнем срезать матрицу, давайте сначала разберемся, как применить срез к простому массиву.
import numpy as nparr = np.array([2,4,6,8,10,12,14,16])print(arr[3:6]) # will print the elements from 3 to 5print(arr[:5]) # will print the elements from 0 to 4print(arr[2:]) # will print the elements from 2 to length of the array.print(arr[-5:-1]) # will print from the end i.e. -5 to -2print(arr[:-1]) # will print from end i.e. 0 to -2
Выход:
[ 8 10 12][ 2 4 6 8 10][ 6 8 10 12 14 16][ 8 10 12 14][ 2 4 6 8 10 12 14]
Теперь реализуем нарезку по матрице. Чтобы выполнить нарезку по матрице
синтаксис будет M1 [row_start: row_end, col_start: col_end]
- Первое начало / конец будет для строки, то есть для выбора строк матрицы.
- Второе начало / конец будет для столбца, т.е. для выбора столбцов матрицы.
Матрица M1 t, которую мы собираемся использовать, выглядит следующим образом:
M1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])
Всего 4 ряда. Индекс начинается с 0 до 3. 0- я строка - это [2,4,6,8,10], 1- я строка - [3,6,9, -12, -15], за которой следуют 2- я и 3- я. .
Матрица M1 имеет 5 столбцов. Индекс начинается с 0 до 4. 0- й столбец имеет значения [2,3,4,5], 1- й столбец имеет значения [4,6,8, -10], за которыми следуют 2- й , 3- й , 4- й , и 5 - й .
Вот пример, показывающий, как получить данные строк и столбцов из матрицы с помощью нарезки. В этом примере мы печатаем 1- ю и 2- ю строки, а для столбцов нам нужны первый, второй и третий столбцы. Чтобы получить этот результат, мы использовали: M1 [1: 3, 1: 4]
Пример:
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[1:3, 1:4]) # For 1:3, it will give first and second row.#The columns will be taken from first to third.
Выход:
[[ 6 9 -12][ 8 12 16]]
Пример: чтобы напечатать все строки и третьи столбцы
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:,3]) # This will print all rows and the third column data.
Выход:
[ 8 -12 16 -20]
Пример: чтобы напечатать первую строку и все столбцы
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:1,]) # This will print first row and all columns
Выход:
[[ 2 4 6 8 10]]
Пример: чтобы напечатать первые три строки и первые 2 столбца
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:3,:2])
Выход:
[[2 4][3 6][4 8]]
Доступ к матрице NumPy
Мы видели, как работает нарезка. Принимая это во внимание, мы узнаем, как получить строки и столбцы из матрицы.
Чтобы распечатать строки матрицы
В примере напечатаем строки матрицы.
Пример:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])print(M1[0]) #first rowprint(M1[1]) # the second rowprint(M1[-1]) # -1 will print the last row
Выход:
[3 6 9][ 5 -10 15][ 4 8 12]
Чтобы получить последнюю строку, вы можете использовать индекс или -1. Например, в матрице 3 строки,
поэтому M1 [0] даст вам первую строку,
M1 [1] даст вам вторую строку
M1 [2] или M1 [-1] даст вам третью или последнюю строку.
Чтобы распечатать столбцы матрицы
import numpy as npM1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])print(M1[:,0]) # Will print the first Columnprint(M1[:,3]) # Will print the third Columnprint(M1[:,-1]) # -1 will give you the last column
Выход:
[2 3 4 5][ 8 -12 16 -20][ 10 -15 -20 25]
Резюме:
- Матрица Python - это специализированный двумерный прямоугольный массив данных, хранящихся в строках и столбцах. Данные в матрице могут быть числами, строками, выражениями, символами и т. Д. Матрица - одна из важных структур данных, которую можно использовать в математических и научных расчетах.
- В Python нет простого способа реализовать матричный тип данных. Матрица Python может быть создана с использованием типа данных вложенного списка и библиотеки numpy.
- Библиотека Python Numpy помогает работать с массивами. Numpy обрабатывает массив немного быстрее по сравнению со списком.
- Операция с матрицей, которая может быть выполнена, - это сложение, вычитание, умножение, транспонирование, чтение строк, столбцов матрицы, нарезка матрицы и т. Д.
- Чтобы добавить две матрицы, вы можете использовать numpy.array () и добавить их с помощью оператора (+).
- Чтобы умножить их на волю, вы можете использовать метод numpy dot (). Numpy.dot () - это скалярное произведение матриц M1 и M2. Numpy.dot () обрабатывает 2D-массивы и выполняет умножение матриц.
- Транспонирование матрицы вычисляется путем изменения строк как столбцов и столбцов как строк. Функцию transpose () из Numpy можно использовать для вычисления транспонирования матрицы.
- Нарезка матрицы вернет вам элементы на основе заданного начального / конечного индекса.