Hier bespreken we verschillende manieren hoe we een matrix kunnen vormen met behulp van Python. In deze tutorial bespreken we ook de verschillende bewerkingen die op een matrix kunnen worden uitgevoerd. we zullen ook de externe module Numpy behandelen om een matrix te vormen en de bewerkingen ervan in Python.

Wat is de matrix?
Een matrix is een verzameling getallen die in een rechthoekige reeks in rijen en kolommen zijn gerangschikt. Op het gebied van techniek, natuurkunde, statistiek en grafische afbeeldingen worden matrices veel gebruikt om beeldrotaties en andere soorten transformaties uit te drukken.
De matrix wordt een m bij n-matrix genoemd, aangegeven met het symbool m x n als er m rijen en n kolommen zijn.
Een eenvoudige matrix maken met Python
Methode 1: Een matrix maken met een lijst met lijsten
Hier gaan we een matrix maken met behulp van de lijst met lijsten.
Python3
java converteert geheel getal naar string
matrix> => [[> 1> ,> 2> ,> 3> ,> 4> ],> > [> 5> ,> 6> ,> 7> ,> 8> ],> > [> 9> ,> 10> ,> 11> ,> 12> ]]> print> (> 'Matrix ='> , matrix)> |
>
>
Uitgang:
Matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]>
Methode 2: Neem Matrix-invoer van de gebruiker in Python
Hier nemen we een aantal rijen en kolommen van de gebruiker en drukken de matrix af.
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> ()> |
>
>
Uitgang:
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>
Tijdcomplexiteit: O(n*n)
Hulpruimte: O(n*n)
Methode 3: Maak een matrix met behulp van lijstbegrip
Lijstbegrip is een elegante manier om een lijst in Python te definiëren en te maken. We gebruiken de bereikfunctie voor het afdrukken van 4 rijen en 4 kolommen.
Python3
matrix> => [[column> for> column> in> range> (> 4> )]> for> row> in> range> (> 4> )]> print> (matrix)> |
>
>
Uitgang:
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]>
Waarde toekennen in een matrix
Methode 1: Wijs waarde toe aan een individuele cel in Matrix
Hier vervangen we en kennen we waarde toe aan een individuele cel (1 rij en 1 kolom = 11) in de matrix.
Python3
X> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ], [> 7> ,> 8> ,> 9> ]]> row> => column> => 1> X[row][column]> => 11> print> (X)> |
>
>
Uitgang:
[[1, 2, 3], [4, 11 , 6], [7, 8, 9]]>
Methode 2: Wijs een waarde toe aan een individuele cel met behulp van negatieve indexering in Matrix
Hier vervangen en wijzen we waarde toe aan een individuele cel (-2 rij en -1 kolom = 21) in de matrix.
Python3
row> => -> 2> column> => -> 1> X[row][column]> => 21> print> (X)> |
>
>
Uitgang:
[[1, 2, 3], [4, 5, 21 ], [7, 8, 9]]>
Toegang tot waarde in een matrix
Methode 1: Toegang krijgen tot matrixwaarden
Hier hebben we toegang tot elementen van een matrix door de rij en kolom door te geven.
Python3
print> (> 'Matrix at 1 row and 3 column='> , X[> 0> ][> 2> ])> print> (> 'Matrix at 3 row and 3 column='> , X[> 2> ][> 2> ])> |
>
>
Uitgang:
Matrix at 1 row and 3 column= 3 Matrix at 3 row and 3 column= 9>
Methode 2: Toegang krijgen tot matrixwaarden met behulp van negatieve indexering
Hier hebben we toegang tot elementen van een matrix door de rij en kolom door te geven aan negatieve indexering.
Python3
import> numpy as np> X> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ], [> 7> ,> 8> ,> 9> ]]> print> (X[> -> 1> ][> -> 2> ])> |
>
>
Uitgang:
8>
Wiskundige bewerkingen met matrix in Python
Voorbeeld 1: Waarden toevoegen aan een matrix met een for-lus in Python
Hier voegen we twee matrices toe met behulp van de 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)> |
>
>
Uitgang:
[10, 10, 10] [10, 10, 10] [10, 10, 10]>
Tijdcomplexiteit: O(n*n)
Hulpruimte: O(n*n)
Voorbeeld 2: Waarden optellen en aftrekken aan een matrix met lijstbegrip
De basisoptelling en -aftrekking uitvoeren met behulp van lijstbegrip.
Python3
array c-reeks
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)> |
>
>
Uitgang:
Matrix Addition [10, 10, 10] [10, 10, 10] [10, 10, 10] Matrix Subtraction [-8, -6, -4] [-2, 0, 2] [4, 6, 8]>
Tijdcomplexiteit: O(n*n)
Hulpruimte: O(n*n)
Voorbeeld 3: Python-programma om twee matrices te vermenigvuldigen en te delen
De basisvermenigvuldiging en -deling uitvoeren met behulp van de Python-lus.
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)> |
>
>
Uitgang:
Matrix Multiplication [9, 16, 21] [24, 25, 24] [21, 16, 9] Matrix Division [0, 0, 0] [0, 1, 1] [2, 4, 9]>
Tijdcomplexiteit: O(n*n)
Hulpruimte: O(n*n)
Transponeren in matrix
Voorbeeld: Python-programma om een matrix te transponeren met behulp van een lus
Transponeren van een matrix wordt verkregen door rijen in kolommen en kolommen in rijen te veranderen. Met andere woorden, de transpositie van A[][] wordt verkregen door A[i][j] te veranderen in 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)> |
>
>
Uitgang:
[9, 6, 3] [8, 5, 2] [7, 4, 1]>
Tijdcomplexiteit: O(n*n)
Hulpruimte: O(n*n)
Matrix met Numpy
Maak een matrix met Numpy
Hier maken we een Numpy-array met numpy.random en a willekeurige module .
Python3
import> numpy as np> > # 1st argument -->getallen variërend van 0 tot 9,> # 2nd argument, row = 3, col = 3> array> => np.random.randint(> 10> , size> => (> 3> ,> 3> ))> print> (array)> |
>
>
Uitgang:
[[2 7 5] [8 5 1] [8 4 6]]>
Wiskundige matrixbewerkingen in Python met Numpy
Hier behandelen we verschillende wiskundige bewerkingen, zoals optellen, aftrekken, vermenigvuldigen en delen met Numpy.
Python3
knop om css te centreren
# 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))> |
>
>
Uitgang:
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 ]]>
Punt- en kruisproduct met Matrix
Hier zullen we de binnenste, buitenste en kruisproducten vinden van matrices en vectoren die NumPy in Python gebruiken.
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)> |
>
>
Uitgang:
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]]>
Matrixtranspositie in Python met Numpy
Om een transponeerbewerking in de matrix uit te voeren, kunnen we de numpy.transpose() methode.
Python3
matrix> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ]]> print> (> '
'> , numpy.transpose(matrix))> |
>
>
Uitgang:
[[1 4][2 5][3 6]]>
Creëer een lege matrix met NumPy in Python
Een lege array initialiseren met behulp van de np.nul() .
Python3
a> => np.zeros([> 2> ,> 2> ], dtype> => int> )> print> (> '
Matrix of 2x2:
'> , a)> c> => np.zeros([> 3> ,> 3> ])> print> (> '
Matrix of 3x3:
'> , c)> |
>
>
Uitgang:
Matrix of 2x2: [[0 0] [0 0]] Matrix of 3x3: [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]>
Snijden in Matrix met Numpy
Slicen is het proces waarbij specifieke rijen en kolommen uit een matrix worden gekozen en vervolgens een nieuwe matrix wordt gemaakt door alle niet-geselecteerde elementen te verwijderen. In het eerste voorbeeld drukken we de hele matrix af, in het tweede voorbeeld geven we 2 door als initiële index, 3 als de laatste index en de indexsprong als 1. Hetzelfde wordt gebruikt in de volgende afdruk, we hebben zojuist de index gewijzigd spring naar 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> ])> |
>
>
Uitgang:
[[ 6 8 10] [ 9 -12 15] [ 12 16 20] [ 15 -20 25]] Slicing Third Row-Second Column: [16] Slicing Third Row-Third Column: [20]>
Verwijder rijen en kolommen met Numpy
Hier proberen we rijen te verwijderen met behulp van de np.delete() functie . In de code hebben we eerst geprobeerd de 0 te verwijderenerij, daarna probeerden we de 2 te verwijderennlrij, en dan de 3rdrij.
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)> |
>
>
Uitgang:
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]]>
Voeg rijen/kolommen toe aan de Numpy-array
We hebben nog een kolom toegevoegd bij de 4epositie met behulp van np.hstack .
Python3
np punt
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))> |
>
>
Uitgang:
resultant array [[ 6 8 10 1] [ 9 -12 15 2] [ 15 -20 25 3]]>