Матрица Python: транспонирование, умножение, примеры массивов NumPy

Содержание:

Anonim

Что такое матрица 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 можно использовать для вычисления транспонирования матрицы.
  • Нарезка матрицы вернет вам элементы на основе заданного начального / конечного индекса.