Матриця Python: Приклади транспонування, множення, масивів NumPy

Зміст:

Anonim

Що таке Python Matrix?

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

У цьому підручнику з Python ви дізнаєтесь:

  • Що таке Python Matrix?
  • Як працюють матриці Python?
  • Створіть Python Matrix, використовуючи вкладений тип даних списку
  • Для читання даних у Python Matrix за допомогою списку.
  • Приклад 2: Читання останнього елемента з кожного рядка.
  • Приклад 3: Для друку рядків у Матриці
  • Додавання матриць за допомогою вкладеного списку
  • Множення матриць за допомогою вкладеного списку
  • Створіть Python Matrix, використовуючи масиви з пакета Python Numpy
  • Операція матриці за допомогою Numpy.Array ()
  • Доступ до NumPy Matrix

Як працюють матриці Python?

Дані всередині двовимірного масиву у матричному форматі виглядають так:

Крок 1)

Він показує матрицю 2x2. Він має два рядки та 2 стовпці. Дані всередині матриці - це цифри. Рядок1 має значення 2,3, а рядок2 має значення 4,5. Стовпці, тобто col1, мають значення 2,4, а col2 - значення 3,5.

Крок 2)

Він показує матрицю 2x3. Він має два рядки і три стовпці. Дані всередині першого рядка, тобто рядок1, мають значення 2,3,4, а рядок2 має значення 5,6,7. Стовпці col1 мають значення 2,5, col2 має значення 3,6, а col3 має значення 4,7.

Так само, ви можете зберігати свої дані всередині матриці nxn у Python. Багато операцій можна виконати над матричним складанням, відніманням, множенням тощо.

Python не має прямолінійного способу реалізації матричного типу даних.

Матриця python використовує масиви, і те саме може бути реалізовано.

  • Створіть матрицю Python, використовуючи вкладений тип даних списку
  • Створіть Python Matrix, використовуючи масиви з пакета Python Numpy

Створіть Python Matrix, використовуючи вкладений тип даних списку

У 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]]

Last ініціалізує матрицю, яка зберігатиме результат 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 Matrix, використовуючи масиви з пакета 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]]

Транспонування матриці

Транспонування матриці обчислюється шляхом зміни рядків як стовпців та стовпців як рядків. Функцію транспонування () з 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, яку ми будемо використовувати, така:

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 Matrix

Ми бачили, як працює нарізка. Беручи це до уваги, ми розберемося, як отримати рядки та стовпці з матриці.

Для друку рядків матриці

У прикладі будуть надруковані рядки матриці.

Приклад:

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-масиви та виконує множення матриць.
  • Транспонування матриці обчислюється шляхом зміни рядків як стовпців, а стовпців як рядків. Функцію транспонування () з Numpy можна використовувати для обчислення транспонування матриці.
  • Нарізання матриці поверне вам елементи на основі заданого індексу початку / кінця.