Her vil vi diskutere forskjellige måter hvordan vi kan danne en matrise ved hjelp av Python. I denne opplæringen vil vi også diskutere de forskjellige operasjonene som kan utføres på en matrise. vi vil også dekke den eksterne modulen Numpy for å danne en matrise og dens operasjoner i Python.
Hva er matrisen?
En matrise er en samling tall ordnet i en rektangulær matrise i rader og kolonner. Innenfor ingeniørfag, fysikk, statistikk og grafikk er matriser mye brukt for å uttrykke bilderotasjoner og andre typer transformasjoner.
Matrisen blir referert til som en m ved n matrise, angitt med symbolet m x n hvis det er m rader og n kolonner.
Lage en enkel matrise ved hjelp av Python
Metode 1: Lage en matrise med en liste med liste
Her skal vi lage en matrise ved å bruke listen over lister.
Python3
matrix>=> [[>1>,>2>,>3>,>4>],> >[>5>,>6>,>7>,>8>],> >[>9>,>10>,>11>,>12>]]> print>(>'Matrix ='>, matrix)> |
>
>
Produksjon:
Matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]>
Metode 2: Ta Matrix-inndata fra brukeren i Python
Her tar vi en rekke rader og kolonner fra brukeren og skriver ut matrisen.
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>()> |
>
>
Produksjon:
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)
Hjelpeområde: O(n*n)
Metode 3: Lag en matrise ved hjelp av listeforståelse
Listeforståelse er en elegant måte å definere og lage en liste i Python, vi bruker rekkeviddefunksjonen for å skrive ut 4 rader og 4 kolonner.
Python3
matrix>=> [[column>for> column>in> range>(>4>)]>for> row>in> range>(>4>)]> print>(matrix)> |
>
>
Produksjon:
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]>
Tilordne verdi i en matrise
Metode 1: Tilordne verdi til en individuell celle i Matrix
Her erstatter og tildeler vi verdi til en individuell celle (1 rad og 1 kolonne = 11) i matrisen.
Python3
X>=> [[>1>,>2>,>3>], [>4>,>5>,>6>], [>7>,>8>,>9>]]> row>=> column>=> 1> X[row][column]>=> 11> print>(X)> |
>
>
Produksjon:
[[1, 2, 3], [4, 11 , 6], [7, 8, 9]]>
Metode 2: Tilordne en verdi til en individuell celle ved å bruke negativ indeksering i Matrix
Her erstatter og tildeler vi verdi til en individuell celle (-2 rader og -1 kolonne = 21) i matrisen.
Python3
row>=> ->2> column>=> ->1> X[row][column]>=> 21> print>(X)> |
>
>
Produksjon:
[[1, 2, 3], [4, 5, 21 ], [7, 8, 9]]>
Tilgang til verdi i en matrise
Metode 1: Få tilgang til matriseverdier
Her får vi tilgang til elementer i en matrise ved å sende dens rad 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>])> |
>
forskjellen mellom løve og tiger
>
Produksjon:
Matrix at 1 row and 3 column= 3 Matrix at 3 row and 3 column= 9>
Metode 2: Få tilgang til matriseverdier ved hjelp av negativ indeksering
Her får vi tilgang til elementer i en matrise ved å sende dens rad og kolonne på negativ indeksering.
Python3
import> numpy as np> X>=> [[>1>,>2>,>3>], [>4>,>5>,>6>], [>7>,>8>,>9>]]> print>(X[>->1>][>->2>])> |
>
>
Produksjon:
8>
Matematiske operasjoner med matrise i Python
Eksempel 1: Legge til verdier til en matrise med en for-løkke i python
Her legger vi til to matriser ved å bruke 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)> |
>
>
Produksjon:
[10, 10, 10] [10, 10, 10] [10, 10, 10]>
Tidskompleksitet: O(n*n)
Hjelpeområde: O(n*n)
Eksempel 2: Legge til og trekke fra verdier til en matrise med listeforståelse
Utføre grunnleggende addisjon og subtraksjon ved å bruke 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)> |
>
>
Produksjon:
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)
Hjelpeområde: O(n*n)
Eksempel 3: Python-program for å multiplisere og dele to matriser
Utføre grunnleggende multiplikasjon og divisjon ved hjelp av 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)> |
>
>
Produksjon:
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)
Hjelpeområde: O(n*n)
Transponer i matrise
Eksempel: Python-program for å transponere en matrise ved hjelp av loop
Transponering av en matrise oppnås ved å endre rader til kolonner og kolonner til rader. Med andre ord, transponering av A[][] oppnås ved å endre 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)> |
>
>
Produksjon:
[9, 6, 3] [8, 5, 2] [7, 4, 1]>
Tidskompleksitet: O(n*n)
Hjelpeområde: O(n*n)
Matrise ved hjelp av Numpy
Lag en matrise med Numpy
Her lager vi en Numpy-array ved å bruke numpy.random og a tilfeldig modul .
Python3
import> numpy as np> > # 1st argument -->tall fra 0 til 9,> # 2nd argument, row = 3, col = 3> array>=> np.random.randint(>10>, size>=>(>3>,>3>))> print>(array)> |
>
>
Produksjon:
[[2 7 5] [8 5 1] [8 4 6]]>
Matrise matematiske operasjoner i Python ved hjelp av Numpy
Her dekker vi ulike matematiske operasjoner som addisjonssubtraksjon, multiplikasjon og divisjon ved hjelp av Numpy.
Python3
nettverksarkitektur
# 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))> |
>
>
Produksjon:
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 ]]>
Prikk og kryss produkt med Matrix
Her finner vi de indre, ytre og kryssprodukter av matriser og vektorer ved å bruke 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)> |
>
>
Produksjon:
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]]>
Matrisetransponerer i Python ved hjelp av Numpy
For å utføre transponeringsoperasjon i matrise kan vi bruke numpy.transpose() metode.
Python3
matrix>=> [[>1>,>2>,>3>], [>4>,>5>,>6>]]> print>(>'
'>, numpy.transpose(matrix))> |
>
>
Produksjon:
[[1 4][2 5][3 6]]>
Opprett en tom matrise med NumPy i Python
Initialisere en tom matrise ved å bruke 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)> |
>
>
Produksjon:
Matrix of 2x2: [[0 0] [0 0]] Matrix of 3x3: [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]>
Skjæring i Matrix ved hjelp av Numpy
Slicing er prosessen med å velge spesifikke rader og kolonner fra en matrise og deretter lage en ny matrise ved å fjerne alle de ikke-valgte elementene. I det første eksemplet skriver vi ut hele matrisen, i det andre sender vi 2 som en innledende indeks, 3 som den siste indeksen, og indekshopp som 1. Det samme brukes i neste utskrift, vi har nettopp endret indeksen hoppe 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>])> |
>
>
Produksjon:
[[ 6 8 10] [ 9 -12 15] [ 12 16 20] [ 15 -20 25]] Slicing Third Row-Second Column: [16] Slicing Third Row-Third Column: [20]>
Slett rader og kolonner med Numpy
Her prøver vi å slette rader ved å bruke funksjonen np.delete() . I koden prøvde vi først å slette 0-enthrad, så prøvde vi å slette 2ndrad, og deretter 3rdrad.
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)> |
>
>
Produksjon:
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]]>
Legg til rad/kolonner i Numpy-matrisen
Vi la til en kolonne til ved 4thposisjon ved hjelp av 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))> |
>
>
Produksjon:
resultant array [[ 6 8 10 1] [ 9 -12 15 2] [ 15 -20 25 3]]>