logo

Python – Матриця

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

Матриця на 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]]>