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

Что такое Python Матрица?

A Python Матрица — это специализированный двумерный прямоугольный массив данных, хранящихся в строках и столбцах. Данные в матрице могут быть числами, строками, выражениями, символами и т. д. Матрица — одна из важных структур данных, которая может использоваться в математических и научных расчетах.

Как сделать Python Матрицы работают?

Данные внутри двумерного массива в матричном формате выглядят следующим образом:

Python матрица

Шаг 1) Он показывает матрицу 2×2. Он имеет две строки и 2 столбца. Данные внутри матрицы представляют собой числа. Строка1 имеет значения 2,3, а строка2 — значения 4,5. Столбцы, т. е. col1, имеют значения 2,4, а col2 — значения 3,5.

Шаг 2) Он показывает матрицу 2×3. Он имеет две строки и три столбца. Данные внутри первой строки, т. е. строка1, имеют значения 2,3,4, а строка2 — значения 5,6,7. Столбцы col1 имеют значения 2,5, col2 — значения 3,6, а col3 — значения 4,7.

Аналогично, вы можете хранить свои данные внутри матрицы nxn в Python. Над матрицами можно выполнять множество операций: сложение, вычитание, умножение и т. д.

Python не имеет простого способа реализации матричного типа данных.

Матрица Python использует массивы, и то же самое можно реализовать.

  • Создайте Python Матрица с использованием типа данных вложенного списка
  • Создавай Python Матрица с использованием массивов из Python Пакет Numpy

Создавай Python Матрица с использованием типа данных вложенного списка

In Python, массивы представлены с использованием типа данных list. Итак, теперь воспользуемся списком для создания матрицы Python.

Мы создадим матрицу 3×3, как показано ниже:

Создавай Python Матрица с использованием вложенного списка

  • Матрица имеет 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 Матрица с использованием списка.

Мы будем использовать матрицу, определенную выше. Пример прочитает данные, распечатает матрицу, отобразит последний элемент из каждой строки.

Пример: Чтобы распечатать матрицу

M1 = [[8, 14, -6], 
           [12,7,4], 
           [-11,3,21]]

#To print the matrix
print(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])

Вывод:

-6
4
21

Пример 3. Печать строк матрицы

M1 = [[8, 14, -6],
           [12,7,4], 
           [-11,3,21]]

matrix_length = len(M1)

#To print the rows in the Matrix
for 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 matrices
for i in range(len(M1)):
for k in range(len(M2)):
        M3[i][k] = M1[i][k] + M2[i][k]

#To Print the matrix
print("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 matrices
for i in range(len(M1)):
for k in range(len(M2)):
        M3[i][k] = M1[i][k] * M2[i][k]

#To Print the matrix
print("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 np
M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)

Вывод:

[[  5 -10  15]
 [  3  -6   9]
 [ -4   8  12]]

матрица Operaиспользование Numpy.Array()

Матричные операции, которые можно выполнить, — это сложение, вычитание, умножение, транспонирование, чтение строк, столбцов матрицы, разрезание матрицы и т. д. Во всех примерах мы собираемся использовать метод array().

Сложение матрицы

Чтобы выполнить сложение матрицы, мы создадим две матрицы с помощью numpy.array() и добавим их с помощью оператора (+).

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

import numpy as np

M1 = 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 + M2  
print(M3)

Вывод:

[[ 12 -12  36]
 [ 16  12  48]
 [  6 -12  60]]

Матричное вычитание

Чтобы выполнить вычитание матрицы, мы создадим две матрицы с помощью numpy.array() и вычтем их с помощью оператора (-).

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

import numpy as np

M1 = 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 - M2  
print(M3)

Вывод:

[[ -6  24 -18]
 [ -6 -32 -18]
 [-20  40 -18]]

Умножение матриц

Сначала создадим две матрицы, используя numpy.arary(). Чтобы их умножить, вы можете использовать метод numpy dot(). Numpy.dot() — это скалярное произведение матриц M1 и M2. Numpy.dot() обрабатывает двумерные массивы и выполняет умножение матриц.

Пример:

import numpy as np

M1 = 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 np

M1 = 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 np

arr = np.array([2,4,6,8,10,12,14,16])
print(arr[3:6]) # will print the elements from 3 to 5
print(arr[:5]) # will print the elements from 0 to 4
print(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 -2
print(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. 0th строка — это [2,4,6,8,10], 1st строка — [3,6,9,-12,-15], за которой следует 2nd и 3rd.

Матрица M1 имеет 5 столбцов. Индекс начинается от 0 до 4. 0th столбец имеет значения [2,3,4,5], 1st столбцы имеют значения [4,6,8,-10], за которыми следуют 2nd, 3 rd, 4 th, и 5th.

Вот пример, показывающий, как получить данные строк и столбцов из матрицы с помощью срезов. В примере мы печатаем 1st и 2nd строка, а для столбцов нам нужны первый, второй и третий столбцы. Чтобы получить этот результат, мы использовали: M1[1:3, 1:4]

Пример:

import numpy as np

M1 = 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 np
M1 = 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 np

M1 = 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 np

M1 = 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 np
M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])
print(M1[0])  #first row
print(M1[1]) # the second row
print(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 np
M1 = 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 Column
print(M1[:,3]) # Will  print the third Column
print(M1[:,-1]) # -1 will give you the last column

Вывод:

[2 3 4 5]
[  8 -12  16 -20]
[ 10 -15 -20  25]

Итого

  • A Python Матрица — это специализированный двумерный прямоугольный массив данных, хранящихся в строках и столбцах. Данные в матрице могут быть числами, строками, выражениями, символами и т. д. Матрица — одна из важных структур данных, которая может использоваться в математических и научных расчетах.
  • Python не имеет простого способа реализации матричного типа данных. Python Матрица может быть создана с использованием типа данных вложенного списка и библиотеки numpy.
  • Библиотека Python Numpy помогает работать с массивами. Numpy обрабатывает массив немного быстрее по сравнению со списком.
  • Матричные операции, которые можно выполнить, — это сложение, вычитание, умножение, транспонирование, чтение строк, столбцов матрицы, разрезание матрицы и т. д.
  • Чтобы добавить две матрицы, вы можете использовать numpy.array() и добавить их с помощью оператора (+).
  • Чтобы их умножить, вы можете использовать метод numpy dot(). Numpy.dot() — это скалярное произведение матриц M1 и M2. Numpy.dot() обрабатывает двумерные массивы и выполняет умножение матриц.
  • Транспонирование матрицы рассчитывается путем изменения строк в столбцы и столбцов в строки. Функцию transpose() из Numpy можно использовать для расчета транспонирования матрицы.
  • Нарезка матрицы вернет вам элементы на основе заданного индекса начала/конца.