logo

Python - Matrix

Keskustelemme tässä opetusohjelmassa erilaisista tavoista muodostaa matriisi Pythonilla. Keskustelemme myös erilaisista toiminnoista, jotka voidaan suorittaa matriisille. käsittelemme myös ulkoisen moduulin Numpyn matriisin muodostamiseksi ja sen toiminnot Pythonissa.

Matrix Pythonissa

Mikä on matriisi?

Matriisi on kokoelma numeroita, jotka on järjestetty suorakaiteen muotoiseen riveihin ja sarakkeisiin. Tekniikan, fysiikan, tilaston ja grafiikan aloilla matriiseja käytetään laajalti kuvaamaan kuvan kiertoja ja muun tyyppisiä muunnoksia.
Matriisiin viitataan nimellä m x n matriisi, jota merkitään symbolilla m x n jos on m riviä ja n saraketta.



Yksinkertaisen matriisin luominen Pythonilla

Tapa 1: Matriisin luominen listalla

Tässä aiomme luoda matriisin luetteloluettelon avulla.

Python 3








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

>

>

Lähtö:

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

Tapa 2: Ota Matrix-syöte käyttäjältä Pythonissa

Tässä otamme käyttäjältä useita rivejä ja sarakkeita ja tulostamme Matrixin.

Python 3


merkkijonon muuntaminen päivämääräksi



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

>

>

Lähtö:

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>

Aika monimutkaisuus: O(n*n)
Aputila: O(n*n)

Tapa 3: Luo matriisi käyttämällä luettelon ymmärtämistä

Listan ymmärtäminen on tyylikäs tapa määritellä ja luoda lista Pythonissa, käytämme aluetoimintoa 4 rivin ja 4 sarakkeen tulostamiseen.

Python 3




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

>

>

Lähtö:

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

Arvon määrittäminen matriisissa

Tapa 1: Määritä arvo yksittäiselle solulle Matrixissa

Tässä korvaamme ja annamme arvon yksittäiselle solulle (1 rivi ja 1 sarake = 11) matriisissa.

Python 3




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

>

>

Lähtö:

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

Tapa 2: Määritä arvo yksittäiselle solulle käyttämällä negatiivista indeksointia Matrixissa

Tässä korvaamme ja annamme arvon yksittäiselle solulle (-2 riviä ja -1 sarake = 21) matriisissa.

Python 3

java tietorakenteet




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

>

>

Lähtö:

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

Arvon hakeminen matriisissa

Tapa 1: Matriisiarvojen käyttäminen

Tässä pääsemme matriisin elementteihin ohittamalla sen rivin ja sarakkeen.

Python 3




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

>

>

Lähtö:

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

Tapa 2: Matriisiarvojen käyttäminen negatiivisen indeksoinnin avulla

Tässä pääsemme matriisin elementteihin välittämällä sen rivin ja sarakkeen negatiivisen indeksoinnin yhteydessä.

Python 3




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

>

>

Lähtö:

8>

Matemaattiset operaatiot matriisin kanssa Pythonissa

Esimerkki 1: Arvojen lisääminen matriisiin for-silmukalla pythonissa

Tässä lisäämme kaksi matriisia Pythonin for-silmukan avulla.

Python 3




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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n*n)
Aputila: O(n*n)

Esimerkki 2: Arvojen lisääminen ja vähentäminen matriisiin luettelon ymmärtämisellä

Perus yhteen- ja vähennyslaskujen suorittaminen luettelon ymmärtämisen avulla.

Python 3




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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n*n)
Aputila: O(n*n)

Esimerkki 3: Python-ohjelma kahden matriisin kertomiseen ja jakamiseen

Peruskerto- ja jakolaskun suorittaminen Python-silmukalla.

Python 3




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

>

>

Lähtö:

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

Aika monimutkaisuus: O(n*n)
Aputila: O(n*n)

Transponoi matriisiin

Esimerkki: Python-ohjelma matriisin transponoimiseksi silmukan avulla

Matriisin transponointi saadaan muuttamalla rivit sarakkeiksi ja sarakkeet riveiksi. Toisin sanoen A[][]:n transponointi saadaan muuttamalla A[i][j] muotoon A[j][i].

Python 3




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

>

>

Lähtö:

java catch -yritys
[9, 6, 3] [8, 5, 2] [7, 4, 1]>

Aika monimutkaisuus: O(n*n)
Aputila: O(n*n)

Matrix Numpylla

Luo matriisi Numpylla

Tässä luomme Numpy-taulukon käyttämällä numpy.random ja a satunnainen moduuli .

Python 3

lisää vesileima sanaan




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

>

>

Lähtö:

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

Matriisimatemaattiset operaatiot Pythonissa Numpyn avulla

Tässä käsittelemme erilaisia ​​matemaattisia operaatioita, kuten yhteenlaskua, kertolaskua ja jakoa Numpylla.

Python 3




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

>

>

Lähtö:

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

Piste- ja ristitulo Matrixin kanssa

Täältä löydämme matriisien ja vektorien sisä-, ulko- ja ristitulot Pythonin NumPyllä.

Python 3




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

>

>

Lähtö:

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

Matriisitransponoi Pythonissa Numpyn avulla

Transponoinnin suorittamiseksi matriisissa voimme käyttää numpy.transpose() menetelmä.

Python 3




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

>

>

Lähtö:

python tuple lajiteltu
[[1 4][2 5][3 6]]>

Luo an tyhjä matriisi NumPyn kanssa Pythonissa

Tyhjän taulukon alustaminen käyttämällä np.zeros() .

Python 3




a>=> np.zeros([>2>,>2>], dtype>=>int>)> print>(>' Matrix of 2x2: '>, a)> c>=> np.zeros([>3>,>3>])> print>(>' Matrix of 3x3: '>, c)>

>

>

Lähtö:

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

Viipalointi Matrixissa Numpylla

Viipalointi on prosessi, jossa valitaan tietyt rivit ja sarakkeet matriisista ja luodaan sitten uusi matriisi poistamalla kaikki valitsemattomat elementit. Ensimmäisessä esimerkissä tulostetaan koko matriisi, toisessa välitetään 2 aloitusindeksinä, 3 viimeisenä indeksinä ja indeksihyppy on 1. Samaa käytetään seuraavassa painoksessa, olemme juuri muuttaneet indeksiä hyppää kohtaan 2.

Python 3




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

>

>

Lähtö:

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

Poista rivit ja sarakkeet Numpylla

Tässä yritämme poistaa rivejä np.delete()-funktiolla . Koodissa yritimme ensin poistaa 0:nthriviä, yritimme poistaa 2ndrivi ja sitten 3rdrivi.

Python 3




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

>

>

Lähtö:

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

Lisää rivi/sarakkeet Numpy-taulukkoon

Lisäsimme yhden sarakkeen lisää kohtaan 4thsijainti käyttämällä np.hstackia.

Python 3




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

>

>

Lähtö:

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