Тут ми обговоримо різні способи формування матриці за допомогою Python. У цьому підручнику ми також обговоримо різні операції, які можна виконати над матрицею. ми також розглянемо зовнішній модуль Numpy для формування матриці та її операції в Python.

Що таке матриця?
Матриця - це набір чисел, розташованих у прямокутному масиві в рядках і стовпцях. У галузях техніки, фізики, статистики та графіки матриці широко використовуються для вираження поворотів зображень та інших типів перетворень.
Матриця називається матрицею розміром m на n і позначається символом m x n якщо є m рядків і n стовпців.
Створення простої матриці за допомогою Python
Спосіб 1: Створення матриці зі списком списку
Тут ми створимо матрицю, використовуючи список списків.
Python3
matrix> => [[> 1> ,> 2> ,> 3> ,> 4> ],> > [> 5> ,> 6> ,> 7> ,> 8> ],> > [> 9> ,> 10> ,> 11> ,> 12> ]]> print> (> 'Matrix ='> , matrix)> |
>
>
Вихід:
Matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]>
Спосіб 2. Отримайте введення Matrix від користувача в Python
Тут ми беремо рядки та стовпці від користувача та друкуємо матрицю.
Python3
Row> => int> (> input> (> 'Enter the number of rows:'> ))> Column> => int> (> input> (> 'Enter the number of columns:'> ))> # Initialize matrix> matrix> => []> print> (> 'Enter the entries row wise:'> )> # For user input> # A for loop for row entries> for> row> in> range> (Row):> > a> => []> > # A for loop for column entries> > for> column> in> range> (Column):> > a.append(> int> (> input> ()))> > matrix.append(a)> # For printing the matrix> for> row> in> range> (Row):> > for> column> in> range> (Column):> > print> (matrix[row][column], end> => ' '> )> > print> ()> |
>
>
Вихід:
Enter the number of rows:2 Enter the number of columns:2 Enter the entries row wise: 5 6 7 8 5 6 7 8>
Часова складність: O(n*n)
Допоміжний простір: O(n*n)
Спосіб 3: Створення матриці за допомогою розуміння списку
Розуміння списків — це елегантний спосіб визначення та створення списку в Python, ми використовуємо функцію діапазону для друку 4 рядків і 4 стовпців.
Python3
matrix> => [[column> for> column> in> range> (> 4> )]> for> row> in> range> (> 4> )]> print> (matrix)> |
>
>
Вихід:
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]>
Присвоєння значення в матриці
Спосіб 1. Призначте значення окремій комірці в Matrix
Тут ми замінюємо та присвоюємо значення окремій клітинці (1 рядок і 1 стовпець = 11) у матриці.
Python3
X> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ], [> 7> ,> 8> ,> 9> ]]> row> => column> => 1> X[row][column]> => 11> print> (X)> |
>
>
Вихід:
[[1, 2, 3], [4, 11 , 6], [7, 8, 9]]>
Спосіб 2. Призначте значення окремій клітинці за допомогою негативного індексування в Matrix
Тут ми замінюємо та присвоюємо значення окремій клітинці (-2 рядок і -1 стовпець = 21) у матриці.
Python3
абстрактні методи
row> => -> 2> column> => -> 1> X[row][column]> => 21> print> (X)> |
>
>
Вихід:
[[1, 2, 3], [4, 5, 21 ], [7, 8, 9]]>
Доступ до значення в матриці
Спосіб 1: Доступ до значень матриці
Тут ми отримуємо доступ до елементів матриці, передаючи її рядок і стовпець.
Python3
print> (> 'Matrix at 1 row and 3 column='> , X[> 0> ][> 2> ])> print> (> 'Matrix at 3 row and 3 column='> , X[> 2> ][> 2> ])> |
>
>
Вихід:
Matrix at 1 row and 3 column= 3 Matrix at 3 row and 3 column= 9>
Спосіб 2. Доступ до значень матриці за допомогою негативного індексування
Тут ми отримуємо доступ до елементів матриці, передаючи її рядок і стовпець на негативне індексування.
Python3
import> numpy as np> X> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ], [> 7> ,> 8> ,> 9> ]]> print> (X[> -> 1> ][> -> 2> ])> |
>
>
Вихід:
8>
Математичні операції з матрицею в Python
Приклад 1: додавання значень до матриці за допомогою циклу for у python
Тут ми додаємо дві матриці за допомогою циклу for Python.
Python3
# Program to add two matrices using nested loop> X> => [[> 1> ,> 2> ,> 3> ],[> 4> ,> 5> ,> 6> ], [> 7> ,> 8> ,> 9> ]]> Y> => [[> 9> ,> 8> ,> 7> ], [> 6> ,> 5> ,> 4> ], [> 3> ,> 2> ,> 1> ]]> result> => [[> 0> ,> 0> ,> 0> ], [> 0> ,> 0> ,> 0> ], [> 0> ,> 0> ,> 0> ]]> # iterate through rows> for> row> in> range> (> len> (X)):> > # iterate through columns> > for> column> in> range> (> len> (X[> 0> ])):> > result[row][column]> => X[row][column]> +> Y[row][column]> for> r> in> result:> > print> (r)> |
>
>
Вихід:
[10, 10, 10] [10, 10, 10] [10, 10, 10]>
Часова складність: O(n*n)
Допоміжний простір: O(n*n)
Приклад 2: Додавання та віднімання значень до матриці з розумінням списку
Виконання базового додавання та віднімання за допомогою розуміння списку.
Python3
Add_result> => [[X[row][column]> +> Y[row][column]> > for> column> in> range> (> len> (X[> 0> ]))]> > for> row> in> range> (> len> (X))]> Sub_result> => [[X[row][column]> -> Y[row][column]> > for> column> in> range> (> len> (X[> 0> ]))]> > for> row> in> range> (> len> (X))]> print> (> 'Matrix Addition'> )> for> r> in> Add_result:> > print> (r)> print> (> '
Matrix Subtraction'> )> for> r> in> Sub_result:> > print> (r)> |
>
>
Вихід:
Matrix Addition [10, 10, 10] [10, 10, 10] [10, 10, 10] Matrix Subtraction [-8, -6, -4] [-2, 0, 2] [4, 6, 8]>
Часова складність: O(n*n)
Допоміжний простір: O(n*n)
Приклад 3: програма Python для множення та ділення двох матриць
Виконання базового множення та ділення за допомогою циклу Python.
Python3
rmatrix> => [[> 0> ,> 0> ,> 0> ], [> 0> ,> 0> ,> 0> ], [> 0> ,> 0> ,> 0> ]]> for> row> in> range> (> len> (X)):> > for> column> in> range> (> len> (X[> 0> ])):> > rmatrix[row][column]> => X[row][column]> *> Y[row][column]> > print> (> 'Matrix Multiplication'> ,)> for> r> in> rmatrix:> > print> (r)> > for> i> in> range> (> len> (X)):> > for> j> in> range> (> len> (X[> 0> ])):> > rmatrix[row][column]> => X[row][column]> /> /> Y[row][column]> print> (> '
Matrix Division'> ,)> for> r> in> rmatrix:> > print> (r)> |
>
>
Вихід:
Matrix Multiplication [9, 16, 21] [24, 25, 24] [21, 16, 9] Matrix Division [0, 0, 0] [0, 1, 1] [2, 4, 9]>
Часова складність: O(n*n)
Допоміжний простір: O(n*n)
Транспонувати в матриці
Приклад: програма Python для транспонування матриці за допомогою циклу
Транспонування матриці отримується шляхом заміни рядків на стовпці, а стовпців на рядки. Іншими словами, транспонування A[][] отримується шляхом зміни A[i][j] на A[j][i].
Python3
X> => [[> 9> ,> 8> ,> 7> ], [> 6> ,> 5> ,> 4> ], [> 3> ,> 2> ,> 1> ]]> result> => [[> 0> ,> 0> ,> 0> ], [> 0> ,> 0> ,> 0> ], [> 0> ,> 0> ,> 0> ]]> # iterate through rows> for> row> in> range> (> len> (X)):> > # iterate through columns> > for> column> in> range> (> len> (X[> 0> ])):> > result[column][row]> => X[row][column]> for> r> in> result:> > print> (r)> > # # Python Program to Transpose a Matrix using the list comprehension> # rez = [[X[column][row] for column in range(len(X))]> # for row in range(len(X[0]))]> # for row in rez:> # print(row)> |
>
>
Вихід:
[9, 6, 3] [8, 5, 2] [7, 4, 1]>
Часова складність: O(n*n)
Допоміжний простір: O(n*n)
Матриця з використанням Numpy
Створіть матрицю за допомогою Numpy
Тут ми створюємо масив Numpy за допомогою numpy.random і a випадковий модуль .
Python3
import> numpy as np> > # 1st argument -->числа від 0 до 9,> # 2nd argument, row = 3, col = 3> array> => np.random.randint(> 10> , size> => (> 3> ,> 3> ))> print> (array)> |
>
>
Вихід:
[[2 7 5] [8 5 1] [8 4 6]]>
Матричні математичні операції в Python за допомогою Numpy
Тут ми розглядаємо різні математичні операції, такі як додавання, віднімання, множення та ділення за допомогою Numpy.
Python3
черга в java
# initializing matrices> x> => numpy.array([[> 1> ,> 2> ], [> 4> ,> 5> ]])> y> => numpy.array([[> 7> ,> 8> ], [> 9> ,> 10> ]])> # using add() to add matrices> print> (> 'The element wise addition of matrix is : '> )> print> (numpy.add(x,y))> # using subtract() to subtract matrices> print> (> 'The element wise subtraction of matrix is : '> )> print> (numpy.subtract(x,y))> print> (> 'The element wise multiplication of matrix is : '> )> print> (numpy.multiply(x,y))> # using divide() to divide matrices> print> (> 'The element wise division of matrix is : '> )> print> (numpy.divide(x,y))> |
>
>
Вихід:
The element wise addition of matrix is : [[ 8 10] [13 15]] The element wise subtraction of matrix is : [[-6 -6] [-5 -5]] The element wise multiplication of matrix is : [[ 7 16] [36 50]] The element wise division of matrix is : [[0.14285714 0.25 ] [0.44444444 0.5 ]]>
Крапковий добуток із матрицею
Тут ми знайдемо внутрішні, зовнішні та перехресні добутки матриць і векторів за допомогою NumPy у Python.
Python3
X> => [[> 1> ,> 2> ,> 3> ],[> 4> ,> 5> ,> 6> ],[> 7> ,> 8> ,> 9> ]]> Y> => [[> 9> ,> 8> ,> 7> ], [> 6> ,> 5> ,> 4> ],[> 3> ,> 2> ,> 1> ]]> dotproduct> => np.dot(X, Y)> print> (> 'Dot product of two array is:'> , dotproduct)> dotproduct> => np.cross(X, Y)> print> (> 'Cross product of two array is:'> , dotproduct)> |
>
>
Вихід:
Dot product of two array is: [[ 30 24 18] [ 84 69 54] [138 114 90]] Cross product of two array is: [[-10 20 -10] [-10 20 -10] [-10 20 -10]]>
Транспонування матриці в Python за допомогою Numpy
Для виконання операції транспонування в матриці ми можемо використовувати numpy.transpose() метод.
Python3
matrix> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ]]> print> (> '
'> , numpy.transpose(matrix))> |
>
>
Вихід:
[[1 4][2 5][3 6]]>
Створити порожня матриця з NumPy у Python
Ініціалізація порожнього масиву за допомогою np.zeros() .
Python3
a> => np.zeros([> 2> ,> 2> ], dtype> => int> )> print> (> '
Matrix of 2x2:
'> , a)> c> => np.zeros([> 3> ,> 3> ])> print> (> '
Matrix of 3x3:
'> , c)> |
>
>
Вихід:
Matrix of 2x2: [[0 0] [0 0]] Matrix of 3x3: [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]>
Нарізка у Matrix за допомогою Numpy
Розрізання — це процес вибору певних рядків і стовпців із матриці, а потім створення нової матриці шляхом видалення всіх невибраних елементів. У першому прикладі ми друкуємо всю матрицю, у другому ми передаємо 2 як початковий індекс, 3 як останній індекс і стрибок індексу як 1. Те саме використовується в наступному друку, який ми щойно змінили перейти до 2.
Python3
X> => np.array([[> 6> ,> 8> ,> 10> ],> > [> 9> ,> -> 12> ,> 15> ],> > [> 12> ,> 16> ,> 20> ],> > [> 15> ,> -> 20> ,> 25> ]])> # Example of slicing> # Syntax: Lst[ Initial: End: IndexJump ]> print> (X[:])> print> (> '
Slicing Third Row-Second Column: '> , X[> 2> :> 3> ,> 1> ])> print> (> '
Slicing Third Row-Third Column: '> , X[> 2> :> 3> ,> 2> ])> |
>
>
Вихід:
[[ 6 8 10] [ 9 -12 15] [ 12 16 20] [ 15 -20 25]] Slicing Third Row-Second Column: [16] Slicing Third Row-Third Column: [20]>
Видалення рядків і стовпців за допомогою Numpy
Тут ми намагаємося видалити рядки за допомогою функції np.delete(). У коді ми спочатку спробували видалити 0тисрядок, то ми спробували видалити 2ndряд, а потім 3rdрядок.
Python3
# create an array with integers> # with 3 rows and 4 columns> a> => np.array([[> 6> ,> 8> ,> 10> ],> > [> 9> ,> -> 12> ,> 15> ],> > [> 12> ,> 16> ,> 20> ],> > [> 15> ,> -> 20> ,> 25> ]])> # delete 0 th row> data> => np.delete(a,> 0> ,> 0> )> print> (> 'data after 0 th row deleted: '> , data)> # delete 1 st row> data> => np.delete(a,> 1> ,> 0> )> print> (> '
data after 1 st row deleted: '> , data)> # delete 2 nd row> data> => np.delete(a,> 2> ,> 0> )> print> (> '
data after 2 nd row deleted: '> , data)> |
>
>
Вихід:
data after 0 th row deleted: [[ 9 -12 15] [ 12 16 20] [ 15 -20 25]] data after 1 st row deleted: [[ 6 8 10] [ 12 16 20] [ 15 -20 25]] data after 2 nd row deleted: [[ 6 8 10] [ 9 -12 15] [ 15 -20 25]]>
Додайте рядок/стовпці в масив Numpy
Ми додали ще один стовпець у 4тиспозицію за допомогою np.hstack.
Python3
ini_array> => np.array([[> 6> ,> 8> ,> 10> ],> > [> 9> ,> -> 12> ,> 15> ],> > [> 15> ,> -> 20> ,> 25> ]])> # Array to be added as column> column_to_be_added> => np.array([> 1> ,> 2> ,> 3> ])> # Adding column to numpy array> result> => np.hstack((ini_array, np.atleast_2d(column_to_be_added).T))> # printing result> print> (> '
resultant array
'> ,> str> (result))> |
>
>
Вихід:
resultant array [[ 6 8 10 1] [ 9 -12 15 2] [ 15 -20 25 3]]>