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

⚡ Розумний підсумок

A Python Матриця — це двовимірний масив даних у рядках і стовпцях, що використовується в математиці та науці. Тут ви навчитеся створювати матриці з вкладеними списками та NumPy, а також виконувати додавання, множення, транспонування та розбиття на зрізи.

  • 🔢 Що це: Матриця — це двовимірний масив даних у рядках і стовпцях.
  • 📋 Вкладені списки: Python Матриці можна побудувати у вигляді списку списків.
  • 🧮 Масиви NumPy: numpy.array() створює швидші, багатофункціональні матриці.
  • Operaтиони: Додати, підзаголовокtract, та множити матриці за допомогою операторів або numpy.dot().
  • 🔄 Транспонування та зрізання: transpose() міняє місцями рядки та стовпці; зріз вибирає підматриці.
  • 🤖 Допомога ШІ: Інструменти штучного інтелекту, такі як Copilot, миттєво генерують матричний код та код NumPy.

Python Матриця

Що таке Python Матриця?

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

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

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

Python Матриця

Крок 1) Він показує матрицю 2×2. Він має два рядки та 2 стовпці. Дані всередині матриці є числами. Рядок1 має значення 2,3, а рядок2 має значення 4,5. Стовпці, тобто стовпець 1, мають значення 2,4, а стовпець 2 має значення 3,5.

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

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

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

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

  • Створити Python Матриця з використанням типу даних вкладеного списку
  • Створити Python Матриця з використанням масивів з Python Пакет Numpy

Створити Python Матриця з використанням типу даних вкладеного списку

In Python, масиви представлені за допомогою типу даних списку. Тож тепер використаємо список для створення матриці 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()

Матрична операція, яку можна виконати, це додавання, відніманняtracція, множення, транспонування, читання рядків, стовпців матриці, розрізання матриці тощо. У всіх прикладах ми використовуватимемо метод 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]]

Матриця Subtracції

Щоб виконати підзаголовокtracцію на матриці, ми створимо дві матриці за допомогою numpy.array() та subtract їх за допомогою оператора (-).

приклад:

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() обробляє 2D-масиви та виконує множення матриць.

приклад:

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, яку ми будемо використовувати, має такий вигляд:

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, 3rd, 4thі 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 Matrix

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

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

У прикладі виведемо рядки матриці.

приклад:

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]

Поширені запитання

Матриця — це двовимірний прямокутний масив даних, розташованих у рядках і стовпцях. Python не має вбудованого матричного типу, тому ви використовуєте вкладені списки або бібліотеку NumPy.

Створіть матрицю як вкладений список, наприклад [[8, 14, -6], [12, 7, 4]], або за допомогою numpy.array() для швидшої та потужнішої матриці, яка підтримує вбудовані операції.

NumPy обробляє масиви швидше, ніж звичайні списки, та надає вбудовані матричні операції, такі як додавання, скалярний добуток, транспонування та нарізання, що робить матричний код коротшим та ефективнішим.

Для справжнього множення матриць використовуйте numpy.dot(M1, M2) або M1.dot(M2). Оператори плюс та зірка в масивах NumPy замість цього виконують поелементне додавання та множення.

Викличте метод transpose() для масиву NumPy, такого як M1.transpose(). Він міняє місцями рядки та стовпці, тому елемент з рядка i, стовпця j переміщується до рядка j, стовпця i.

Помічники штучного інтелекту, такі як GitHub Copilot, автоматично доповнюють код масивів NumPy, генерують матричні операції, такі як скалярні множини та транспонування, а також пояснюють синтаксис зрізів під час написання. Python.

Так. Інструменти на базі штучного інтелекту можуть автоматизувати написання конвеєрів NumPy, вибирати ефективні векторизовані операції над циклами та генерувати код для задач лінійної алгебри, таких як розв'язання систем рівнянь.

Використовуйте M1[початок_рядка:кінець_рядка, початок_стовпця:кінець_стовпця] для вибору підматриці. Пропуск початку або кінця використовує межі масиву, а від'ємні індекси рахуються з кінця.

Підсумуйте цей пост за допомогою: