logo

Python – Matrix

Her vil vi diskutere forskellige måder, hvordan vi kan danne en matrix ved hjælp af Python. I denne tutorial vil vi også diskutere de forskellige operationer, der kan udføres på en matrix. vi vil også dække det eksterne modul Numpy til at danne en matrix og dets operationer i Python.

Matrix i Python

Hvad er matrixen?

En matrix er en samling af tal arrangeret i en rektangulær matrix i rækker og kolonner. Inden for teknik, fysik, statistik og grafik bruges matricer i vid udstrækning til at udtrykke billedrotationer og andre typer transformationer.
Matrixen omtales som en m gange n matrix, angivet med symbolet m x n hvis der er m rækker og n kolonner.



Oprettelse af en simpel matrix ved hjælp af Python

Metode 1: Oprettelse af en matrix med en liste over liste

Her skal vi lave en matrix ved hjælp af listen over lister.

Python3








matrix>=> [[>1>,>2>,>3>,>4>],> >[>5>,>6>,>7>,>8>],> >[>9>,>10>,>11>,>12>]]> print>(>'Matrix ='>, matrix)>

>

>

Produktion:

Matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]>

Metode 2: Tag Matrix-input fra brugeren i Python

Her tager vi en række rækker og kolonner fra brugeren og udskriver matrixen.

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>()>

>

>

Produktion:

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>

Tidskompleksitet: O(n*n)
Hjælpemellemrum: O(n*n)

Metode 3: Opret en matrix ved hjælp af listeforståelse

Listeforståelse er en elegant måde at definere og oprette en liste i Python, vi bruger rækkeviddefunktionen til at udskrive 4 rækker og 4 kolonner.

Python3




matrix>=> [[column>for> column>in> range>(>4>)]>for> row>in> range>(>4>)]> print>(matrix)>

>

>

Produktion:

[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]>

Tildeling af værdi i en matrix

Metode 1: Tildel værdi til en individuel celle i Matrix

Her erstatter og tildeler vi værdi til en individuel celle (1 række og 1 kolonne = 11) i matrixen.

Python3




X>=> [[>1>,>2>,>3>], [>4>,>5>,>6>], [>7>,>8>,>9>]]> row>=> column>=> 1> X[row][column]>=> 11> print>(X)>

>

>

Produktion:

[[1, 2, 3], [4, 11 , 6], [7, 8, 9]]>

Metode 2: Tildel en værdi til en individuel celle ved hjælp af negativ indeksering i Matrix

Her erstatter og tildeler vi værdi til en individuel celle (-2 rækker og -1 kolonne = 21) i matrixen.

Python3




row>=> ->2> column>=> ->1> X[row][column]>=> 21> print>(X)>

>

>

Produktion:

[[1, 2, 3], [4, 5, 21 ], [7, 8, 9]]>

Adgang til værdi i en matrix

Metode 1: Adgang til Matrix-værdier

Her får vi adgang til elementer i en Matrix ved at sende dens række og kolonne.

Python3




print>(>'Matrix at 1 row and 3 column='>, X[>0>][>2>])> print>(>'Matrix at 3 row and 3 column='>, X[>2>][>2>])>

>

java char til streng

>

Produktion:

Matrix at 1 row and 3 column= 3 Matrix at 3 row and 3 column= 9>

Metode 2: Adgang til Matrix-værdier ved hjælp af negativ indeksering

Her får vi adgang til elementer i en Matrix ved at sende dens række og kolonne til negativ indeksering.

Python3




import> numpy as np> X>=> [[>1>,>2>,>3>], [>4>,>5>,>6>], [>7>,>8>,>9>]]> print>(X[>->1>][>->2>])>

>

>

Produktion:

8>

Matematiske operationer med Matrix i Python

Eksempel 1: Tilføjelse af værdier til en matrix med en for-løkke i python

Her tilføjer vi to matricer ved hjælp af Python for-loop.

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)>

>

>

Produktion:

[10, 10, 10] [10, 10, 10] [10, 10, 10]>

Tidskompleksitet: O(n*n)
Hjælpemellemrum: O(n*n)

Eksempel 2: Tilføjelse og subtrahering af værdier til en matrix med listeforståelse

Udførelse af den grundlæggende addition og subtraktion ved hjælp af listeforståelse.

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)>

>

>

Produktion:

Matrix Addition [10, 10, 10] [10, 10, 10] [10, 10, 10] Matrix Subtraction [-8, -6, -4] [-2, 0, 2] [4, 6, 8]>

Tidskompleksitet: O(n*n)
Hjælpemellemrum: O(n*n)

Eksempel 3: Python-program til at gange og dividere to matricer

Udførelse af den grundlæggende multiplikation og division ved hjælp af Python-løkke.

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)>

>

>

Produktion:

Matrix Multiplication [9, 16, 21] [24, 25, 24] [21, 16, 9] Matrix Division [0, 0, 0] [0, 1, 1] [2, 4, 9]>

Tidskompleksitet: O(n*n)
Hjælpemellemrum: O(n*n)

Transponer i matrix

Eksempel: Python-program til at transponere en matrix ved hjælp af loop

Transponering af en matrix opnås ved at ændre rækker til kolonner og kolonner til rækker. Med andre ord, transponering af A[][] opnås ved at ændre A[i][j] til 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)>

>

>

Produktion:

[9, 6, 3] [8, 5, 2] [7, 4, 1]>

Tidskompleksitet: O(n*n)
Hjælpemellemrum: O(n*n)

Matrix ved hjælp af Numpy

Opret en matrix ved hjælp af Numpy

Her opretter vi et Numpy-array ved hjælp af numpy.random og en tilfældigt modul .

Python3




import> numpy as np> > # 1st argument -->tal fra 0 til 9,> # 2nd argument, row = 3, col = 3> array>=> np.random.randint(>10>, size>=>(>3>,>3>))> print>(array)>

>

>

Produktion:

[[2 7 5] [8 5 1] [8 4 6]]>

Matrix matematiske operationer i Python ved hjælp af Numpy

Her dækker vi forskellige matematiske operationer såsom addition subtraktion, multiplikation og division ved hjælp af Numpy.

Python3


netværksarkitektur



# 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))>

>

>

Produktion:

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

Prik og kryds produkt med Matrix

Her finder vi de indre, ydre og krydsprodukter af matricer og vektorer ved hjælp af NumPy i 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)>

>

>

Produktion:

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

Matrix transponere i Python ved hjælp af Numpy

For at udføre transponeringsoperation i matrix kan vi bruge numpy.transpose() metode.

Python3




matrix>=> [[>1>,>2>,>3>], [>4>,>5>,>6>]]> print>(>' '>, numpy.transpose(matrix))>

>

>

Produktion:

[[1 4][2 5][3 6]]>

Opret en tom matrix med NumPy i Python

Initialisering af et tomt array ved hjælp af 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)>

>

>

Produktion:

Matrix of 2x2: [[0 0] [0 0]] Matrix of 3x3: [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]>

Udskæring i Matrix ved hjælp af Numpy

Udsnit er processen med at vælge specifikke rækker og kolonner fra en matrix og derefter oprette en ny matrix ved at fjerne alle de ikke-valgte elementer. I det første eksempel udskriver vi hele matrixen, i det andet sender vi 2 som et indledende indeks, 3 som det sidste indeks, og indeksspring som 1. Det samme bruges i næste print, vi har lige ændret indekset spring til 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>])>

>

>

Produktion:

[[ 6 8 10] [ 9 -12 15] [ 12 16 20] [ 15 -20 25]] Slicing Third Row-Second Column: [16] Slicing Third Row-Third Column: [20]>

Slet rækker og kolonner ved hjælp af Numpy

Her forsøger vi at slette rækker ved hjælp af funktionen np.delete() . I koden forsøgte vi først at slette 0'enthrække, så forsøgte vi at slette 2ndrække og derefter 3rdrække.

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)>

>

>

Produktion:

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

Tilføj række/kolonner i Numpy-arrayet

Vi tilføjede endnu en kolonne ved 4thposition ved hjælp af 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))>

>

>

Produktion:

resultant array [[ 6 8 10 1] [ 9 -12 15 2] [ 15 -20 25 3]]>