Aquí parlarem de diferents maneres de formar una matriu mitjançant Python, dins d'aquest tutorial, també parlarem de les diferents operacions que es poden realitzar en una matriu. també tractarem el mòdul extern Numpy per formar una matriu i les seves operacions en Python.

Què és la matriu?
Una matriu és una col·lecció de nombres disposats en una matriu rectangular en files i columnes. En els camps de l'enginyeria, la física, l'estadística i els gràfics, les matrius s'utilitzen àmpliament per expressar rotacions d'imatges i altres tipus de transformacions.
La matriu s'anomena matriu m per n, denotada pel símbol m x n si hi ha m files i n columnes.
Creació d'una matriu senzilla amb Python
Mètode 1: Creació d'una matriu amb una llista de llista
Aquí, crearem una matriu utilitzant la llista de llistes.
Python 3
matrix> => [[> 1> ,> 2> ,> 3> ,> 4> ],> > [> 5> ,> 6> ,> 7> ,> 8> ],> > [> 9> ,> 10> ,> 11> ,> 12> ]]> print> (> 'Matrix ='> , matrix)> |
ordres de Linux
>
>
Sortida:
Matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]>
Mètode 2: prengui l'entrada de Matrix de l'usuari a Python
Aquí, estem agafant una sèrie de files i columnes de l'usuari i imprimint la matriu.
Python 3
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> ()> |
>
>
Sortida:
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>
Complexitat temporal: O(n*n)
Espai auxiliar: O(n*n)
Mètode 3: crear una matriu utilitzant la comprensió de llistes
La comprensió de llistes és una manera elegant de definir i crear una llista a Python, estem utilitzant la funció de rang per imprimir 4 files i 4 columnes.
Python 3
matrix> => [[column> for> column> in> range> (> 4> )]> for> row> in> range> (> 4> )]> print> (matrix)> |
>
>
Sortida:
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]>
Assignació de valors en una matriu
Mètode 1: assigneu un valor a una cel·la individual de Matrix
Aquí estem substituint i assignant valor a una cel·la individual (1 fila i 1 columna = 11) a la matriu.
Python 3
X> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ], [> 7> ,> 8> ,> 9> ]]> row> => column> => 1> X[row][column]> => 11> print> (X)> |
>
>
Sortida:
[[1, 2, 3], [4, 11 , 6], [7, 8, 9]]>
Mètode 2: assigneu un valor a una cel·la individual mitjançant la indexació negativa a Matrix
Aquí estem substituint i assignant valor a una cel·la individual (-2 fila i -1 columna = 21) a la matriu.
Python 3
classificació de galleda
row> => -> 2> column> => -> 1> X[row][column]> => 21> print> (X)> |
>
>
Sortida:
[[1, 2, 3], [4, 5, 21 ], [7, 8, 9]]>
Accés al valor en una matriu
Mètode 1: Accés als valors de la matriu
Aquí, estem accedint als elements d'una matriu passant la seva fila i columna.
Python 3
print> (> 'Matrix at 1 row and 3 column='> , X[> 0> ][> 2> ])> print> (> 'Matrix at 3 row and 3 column='> , X[> 2> ][> 2> ])> |
>
>
Sortida:
Matrix at 1 row and 3 column= 3 Matrix at 3 row and 3 column= 9>
Mètode 2: Accés als valors de la matriu mitjançant la indexació negativa
Aquí, estem accedint als elements d'una matriu passant la seva fila i columna a la indexació negativa.
Python 3
import> numpy as np> X> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ], [> 7> ,> 8> ,> 9> ]]> print> (X[> -> 1> ][> -> 2> ])> |
>
>
Sortida:
8>
Operacions matemàtiques amb Matrix en Python
Exemple 1: afegir valors a una matriu amb un bucle for a Python
Aquí, estem afegint dues matrius utilitzant el bucle for de Python.
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)> |
>
>
Sortida:
[10, 10, 10] [10, 10, 10] [10, 10, 10]>
Complexitat temporal: O(n*n)
Espai auxiliar: O(n*n)
Exemple 2: Sumar i restar valors a una matriu amb comprensió de llista
Realització de les sumes i restes bàsiques mitjançant la comprensió de llistes.
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)> |
>
>
Sortida:
Matrix Addition [10, 10, 10] [10, 10, 10] [10, 10, 10] Matrix Subtraction [-8, -6, -4] [-2, 0, 2] [4, 6, 8]>
Complexitat temporal: O(n*n)
Espai auxiliar: O(n*n)
Exemple 3: programa Python per multiplicar i dividir dues matrius
Realització de la multiplicació i divisió bàsica mitjançant el bucle Python.
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)> |
>
>
Sortida:
Matrix Multiplication [9, 16, 21] [24, 25, 24] [21, 16, 9] Matrix Division [0, 0, 0] [0, 1, 1] [2, 4, 9]>
Complexitat temporal: O(n*n)
Espai auxiliar: O(n*n)
Transposar en matriu
Exemple: Programa Python per transposar una matriu mitjançant bucle
La transposició d'una matriu s'obté canviant files a columnes i columnes a files. En altres paraules, la transposició de A[][] s'obté canviant A[i][j] a 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)> |
>
>
Sortida:
sobrecàrrega del mètode
[9, 6, 3] [8, 5, 2] [7, 4, 1]>
Complexitat temporal: O(n*n)
Espai auxiliar: O(n*n)
Matrix utilitzant Numpy
Creeu una matriu amb Numpy
Aquí estem creant una matriu Numpy utilitzant numpy.random i a mòdul aleatori .
Python 3
import> numpy as np> > # 1st argument -->nombres que van del 0 al 9,> # 2nd argument, row = 3, col = 3> array> => np.random.randint(> 10> , size> => (> 3> ,> 3> ))> print> (array)> |
>
>
Sortida:
[[2 7 5] [8 5 1] [8 4 6]]>
Operacions matemàtiques de matriu en Python utilitzant Numpy
Aquí cobrim diferents operacions matemàtiques com ara sumes, restes, multiplicacions i divisió amb Numpy.
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))> |
>
>
Sortida:
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 ]]>
Producte de punts i creus amb Matrix
Aquí trobarem els productes interiors, exteriors i creuats de matrius i vectors utilitzant NumPy a Python.
Python 3
llista de tipus de lletra a gimp
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)> |
>
>
Sortida:
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]]>
Transposició de matrius a Python mitjançant Numpy
Per realitzar l'operació de transposició en matriu podem utilitzar el numpy.transpose() mètode.
Python 3
matrix> => [[> 1> ,> 2> ,> 3> ], [> 4> ,> 5> ,> 6> ]]> print> (> '
'> , numpy.transpose(matrix))> |
>
>
Sortida:
[[1 4][2 5][3 6]]>
Crea un matriu buida amb NumPy a Python
Inicialitzant una matriu buida, utilitzant el 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)> |
>
>
Sortida:
Matrix of 2x2: [[0 0] [0 0]] Matrix of 3x3: [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]>
Tallar a Matrix utilitzant Numpy
El tall és el procés d'escollir files i columnes específiques d'una matriu i després crear una matriu nova eliminant tots els elements no seleccionats. En el primer exemple, estem imprimint tota la matriu, en el segon estem passant 2 com a índex inicial, 3 com a darrer índex i índex salt com a 1. El mateix s'utilitza a la següent impressió que acabem de canviar l'índex. saltar a 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> ])> |
>
>
Sortida:
[[ 6 8 10] [ 9 -12 15] [ 12 16 20] [ 15 -20 25]] Slicing Third Row-Second Column: [16] Slicing Third Row-Third Column: [20]>
Suprimeix files i columnes amb Numpy
Aquí, estem intentant suprimir files mitjançant la funció np.delete() . Al codi, primer vam intentar eliminar el 0thfila, després vam intentar suprimir el 2ndfila, i després el 3rdfila.
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)> |
>
>
Sortida:
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]]>
Afegiu files/columnes a la matriu Numpy
Hem afegit una columna més a la 4thposició utilitzant np.hstack .
cadena a java booleà
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))> |
>
>
Sortida:
resultant array [[ 6 8 10 1] [ 9 -12 15 2] [ 15 -20 25 3]]>