logo

Python – matrica

Šioje pamokoje aptarsime įvairius būdus, kaip sudaryti matricą naudojant Python, taip pat aptarsime įvairias operacijas, kurias galima atlikti su matrica. taip pat apžvelgsime išorinį modulį Numpy, kad sudarytume matricą, ir jo operacijas Python.

Matrica Python

Kas yra matrica?

Matrica yra skaičių rinkinys, išdėstytas stačiakampiu masyvu eilutėmis ir stulpeliais. Inžinerijos, fizikos, statistikos ir grafikos srityse matricos plačiai naudojamos vaizdų sukimuisi ir kitokioms transformacijoms išreikšti.
Matrica vadinama matrica m x n, žymima simboliu m x n jei yra m eilučių ir n stulpelių.

Paprastos matricos kūrimas naudojant Python

1 būdas: matricos su sąrašo sąrašu kūrimas

Čia mes sukursime matricą naudodami sąrašų sąrašą.



Python3




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

>

>

Išvestis:

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

2 būdas: paimkite Matrix įvestį iš vartotojo Python

Čia mes paimame iš vartotojo eilučių ir stulpelių ir išspausdiname Matricą.

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

>

>

Išvestis:

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>

Laiko sudėtingumas: O(n*n)
Pagalbinė erdvė: O(n*n)

3 būdas. Sukurkite matricą naudodami sąrašo supratimą

Sąrašo supratimas yra elegantiškas būdas apibrėžti ir sukurti sąrašą Python, mes naudojame diapazono funkciją 4 eilučių ir 4 stulpelių spausdinimui.

Python3




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

>

>

Išvestis:

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

Vertės priskyrimas matricoje

1 būdas: priskirkite reikšmę atskiram Matricos langeliui

Čia mes pakeičiame ir priskiriame reikšmę atskiram langeliui (1 eilutė ir 1 stulpelis = 11) Matricoje.

Python3




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

>

>

Išvestis:

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

2 būdas: priskirkite reikšmę atskiram langeliui naudodami neigiamą indeksavimą Matrix

Čia mes pakeičiame ir priskiriame reikšmę atskiram langeliui (-2 eilutė ir -1 stulpelis = 21) Matricoje.

java konvertuoti sveikąjį skaičių į eilutę

Python3




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

>

>

Išvestis:

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

Prieiga prie vertės matricoje

1 būdas: prieiga prie matricos reikšmių

Čia mes pasiekiame Matricos elementus, perduodami eilutę ir stulpelį.

Python3




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

>

>

Išvestis:

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

2 būdas: prieiga prie matricos reikšmių naudojant neigiamą indeksavimą

Čia mes pasiekiame Matricos elementus, perduodami jos eilutę ir stulpelį neigiamam indeksavimui.

Python3




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

>

>

Išvestis:

8>

Matematiniai veiksmai su matrica Python

1 pavyzdys: reikšmių įtraukimas į matricą su for kilpa python

Čia mes pridedame dvi matricas naudodami Python for-ciklą.

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

>

>

Išvestis:

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

Laiko sudėtingumas: O(n*n)
Pagalbinė erdvė: O(n*n)

2 pavyzdys: reikšmių pridėjimas ir atėmimas į matricą su sąrašo supratimu

Pagrindinės sudėties ir atimties atlikimas naudojant sąrašo supratimą.

Python3


java iterate žemėlapis



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

>

>

Išvestis:

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

Laiko sudėtingumas: O(n*n)
Pagalbinė erdvė: O(n*n)

3 pavyzdys: Python programa, skirta padauginti ir padalyti dvi matricas

Pagrindinio daugybos ir dalybos atlikimas naudojant Python kilpą.

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

kuris išrado mokyklą
>

>

Išvestis:

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

Laiko sudėtingumas: O(n*n)
Pagalbinė erdvė: O(n*n)

Transponuoti į matricą

Pavyzdys: Python programa, skirta perkelti matricą naudojant kilpą

Matricos perkėlimas gaunamas keičiant eilutes į stulpelius ir stulpelius į eilutes. Kitaip tariant, A[][] perkėlimas gaunamas pakeitus 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)>

>

>

Išvestis:

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

Laiko sudėtingumas: O(n*n)
Pagalbinė erdvė: O(n*n)

Matrica naudojant Numpy

Sukurkite matricą naudodami Numpy

Čia mes kuriame Numpy masyvą naudodami numpy.random ir a atsitiktinis modulis .

Python3




import> numpy as np> > # 1st argument -->skaičiai nuo 0 iki 9,> # 2nd argument, row = 3, col = 3> array>=> np.random.randint(>10>, size>=>(>3>,>3>))> print>(array)>

>

>

Išvestis:

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

Matricos matematiniai veiksmai Python naudojant Numpy

Čia apžvelgiame įvairias matematines operacijas, tokias kaip sudėties atimtis, daugyba ir padalijimas naudojant Numpy.

Python3




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

>

>

Išvestis:

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

Taškas ir kryžminis produktas su Matrica

Čia rasime vidinį, išorinį ir kryžminį matricų ir vektorių sandaugą naudodami NumPy programoje 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)>

>

>

Išvestis:

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

Matricos perkėlimas į Python naudojant Numpy

Norėdami atlikti transponavimo operaciją matricoje, galime naudoti numpy.transpose() metodas.

Python3




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

>

>

Išvestis:

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

Sukurti an tuščia matrica su NumPy Python

Tuščio masyvo inicijavimas naudojant 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)>

>

>

ms word greitosios prieigos įrankių juosta

Išvestis:

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

Pjaustymas Matrix naudojant Numpy

Pjaustymas – tai konkrečių eilučių ir stulpelių parinkimas iš matricos ir naujos matricos sukūrimas pašalinant visus nepasirinktus elementus. Pirmajame pavyzdyje spausdiname visą matricą, antrajame perduodame 2 kaip pradinį indeksą, 3 kaip paskutinį indeksą ir indekso šuolį kaip 1. Tas pats naudojamas kitame spaudinyje, ką tik pakeitėme indeksą pereiti prie 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>])>

>

>

Išvestis:

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

Ištrinkite eilutes ir stulpelius naudodami Numpy

Čia mes bandome ištrinti eilutes naudodami funkciją np.delete() . Kode pirmiausia bandėme ištrinti 0theilutę, tada bandėme ištrinti 2ndeilutę, o tada 3rdeilė.

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

>

>

Išvestis:

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

Pridėkite eilutę / stulpelius į Numpy masyvą

Prie 4 pridėjome dar vieną stulpelįthpadėtis naudojant 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))>

>

>

Išvestis:

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