logo

Python – Matrix

Här kommer vi att diskutera olika sätt hur vi kan bilda en matris med Python. I denna handledning kommer vi också att diskutera de olika operationerna som kan utföras på en matris. vi kommer också att täcka den externa modulen Numpy för att bilda en matris och dess operationer i Python.

Matris i Python

Vad är matrisen?

En matris är en samling tal ordnade i en rektangulär matris i rader och kolumner. Inom områdena teknik, fysik, statistik och grafik används matriser i stor utsträckning för att uttrycka bildrotationer och andra typer av transformationer.
Matrisen hänvisas till som en m gånger n matris, betecknad med symbolen m x n om det finns m rader och n kolumner.



Skapa en enkel matris med Python

Metod 1: Skapa en matris med en lista med lista

Här kommer vi att skapa en matris med hjälp av listan med listor.

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

Metod 2: Ta Matrix-indata från användaren i Python

Här tar vi ett antal rader och kolumner från användaren och 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>()>

>

>

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>

Tidskomplexitet: O(n*n)
Hjälputrymme: O(n*n)

uppgiftshanteraren linux

Metod 3: Skapa en matris med hjälp av listförståelse

Listförståelse är ett elegant sätt att definiera och skapa en lista i Python, vi använder intervallfunktionen för att skriva ut 4 rader och 4 kolumner.

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

Tilldela värde i en matris

Metod 1: Tilldela värde till en enskild cell i Matrix

Här ersätter och tilldelar vi värde till en enskild cell (1 rad och 1 kolumn = 11) i matrisen.

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

Metod 2: Tilldela ett värde till en enskild cell med negativ indexering i Matrix

Här byter vi ut och tilldelar värde till en enskild cell (-2 rader och -1 kolumn = 21) i matrisen.

Python3




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

>

>

Produktion:

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

Få tillgång till värde i en matris

Metod 1: Få åtkomst till matrisvärden

Här kommer vi åt element i en matris genom att skicka dess rad och kolumn.

Python3




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

>

>

Produktion:

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

Metod 2: Få åtkomst till matrisvärden med negativ indexering

Här kommer vi åt element i en matris genom att skicka dess rad och kolumn till negativ indexering.

Python3




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

>

>

Produktion:

8>

Matematiska operationer med Matrix i Python

Exempel 1: Lägga till värden till en matris med en for-loop i python

Här lägger vi till två matriser med 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]>

Tidskomplexitet: O(n*n)
Hjälputrymme: O(n*n)

Exempel 2: Addera och subtrahera värden till en matris med listförståelse

Utför grundläggande addition och subtraktion med hjälp av listförståelse.

Python3


java listor



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

Tidskomplexitet: O(n*n)
Hjälputrymme: O(n*n)

Exempel 3: Python-program för att multiplicera och dividera två matriser

Utför Basic multiplikation och division med Python loop.

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

Tidskomplexitet: O(n*n)
Hjälputrymme: O(n*n)

Transponera i matris

Exempel: Python-program för att transponera en matris med loop

Transponering av en matris erhålls genom att ändra rader till kolumner och kolumner till rader. Med andra ord, transponering av A[][] erhålls genom att ändra A[i][j] till 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]>

Tidskomplexitet: O(n*n)
Hjälputrymme: O(n*n)

Matris med Numpy

Skapa en matris med Numpy

Här skapar vi en Numpy-array med numpy.random och a slumpmässig modul .

Python3




import> numpy as np> > # 1st argument -->nummer från 0 till 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]]>

Matris matematiska operationer i Python med hjälp av Numpy

Här täcker vi olika matematiska operationer som addition, subtraktion, multiplikation och division med hjälp av Numpy.

Python3


fråga ett klick



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

Prick och korsa produkt med Matrix

Här hittar vi de inre, yttre och korsprodukterna av matriser och vektorer med hjälp av 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]]>

Matristransponera i Python med Numpy

För att utföra transponeringsoperation i matris kan vi använda numpy.transpose() metod.

Python3




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

>

>

Produktion:

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

Skapa en tom matris med NumPy i Python

Initiera en tom array med hjälp av 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.]]>

Skiva i Matrix med Numpy

Slicing är processen att välja specifika rader och kolumner från en matris och sedan skapa en ny matris genom att ta bort alla icke-markerade element. I det första exemplet skriver vi ut hela matrisen, i det andra skickar vi 2 som ett initialt index, 3 som det sista indexet och indexhoppet som 1. Detsamma används i nästa utskrift, vi har just ändrat indexet hoppa till 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>])>

python rstrip

>

>

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

Ta bort rader och kolumner med Numpy

Här försöker vi ta bort rader med funktionen np.delete() . I koden försökte vi först ta bort 0:anthrad, sedan försökte vi ta bort 2:anndrad och sedan 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)>

>

>

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

Lägg till rad/kolumner i Numpy-arrayen

Vi lade till ytterligare en kolumn vid 4:anthposition med hjälp 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))>

>

>

Produktion:

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