logo

Pitone – Matrice

Qui discuteremo diversi modi in cui possiamo formare una matrice usando Python. All'interno di questo tutorial discuteremo anche delle varie operazioni che possono essere eseguite su una matrice. tratteremo anche il modulo esterno Numpy per formare una matrice e le sue operazioni in Python.

Automi finiti deterministici
Matrice in Python

Cos'è la matrice?

Una matrice è una raccolta di numeri disposti in una matrice rettangolare in righe e colonne. Nei campi dell'ingegneria, della fisica, della statistica e della grafica, le matrici sono ampiamente utilizzate per esprimere rotazioni di immagini e altri tipi di trasformazioni.
La matrice viene definita matrice m per n, indicata con il simbolo mxn se ci sono m righe e n colonne.



Creazione di una matrice semplice utilizzando Python

Metodo 1: creazione di una matrice con un elenco di elenchi

Qui creeremo una matrice utilizzando l'elenco delle liste.

Python3








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

>

>

Produzione:

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

Metodo 2: prendi l'input Matrix dall'utente in Python

Qui, stiamo prendendo un numero di righe e colonne dall'utente e stampiamo la matrice.

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

>

>

Produzione:

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>

Complessità temporale: O(n*n)
Spazio ausiliario: O(n*n)

Metodo 3: crea una matrice utilizzando la comprensione delle liste

La comprensione delle liste è un modo elegante per definire e creare una lista in Python, stiamo usando la funzione range per stampare 4 righe e 4 colonne.

Python3




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

>

>

Produzione:

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

Assegnazione di valore in una matrice

Metodo 1: assegna valore a una singola cella in Matrix

Qui stiamo sostituendo e assegnando valore a una singola cella (1 riga e 1 colonna = 11) nella Matrice.

Python3




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

>

>

Produzione:

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

Metodo 2: assegnare un valore a una singola cella utilizzando l'indicizzazione negativa in Matrix

Qui stiamo sostituendo e assegnando valore a una singola cella (-2 righe e -1 colonna = 21) nella Matrice.

Python3




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

>

>

Produzione:

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

Accesso al valore in una matrice

Metodo 1: accesso ai valori della matrice

Qui stiamo accedendo agli elementi di una matrice passando la sua riga e colonna.

Python3




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

>

>

Produzione:

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

Metodo 2: accesso ai valori Matrix utilizzando l'indicizzazione negativa

Qui stiamo accedendo agli elementi di una matrice passando la sua riga e colonna sull'indicizzazione negativa.

Python3




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

>

>

Produzione:

8>

Operazioni matematiche con Matrix in Python

Esempio 1: aggiunta di valori a una matrice con un ciclo for in Python

Qui stiamo aggiungendo due matrici usando il ciclo for di Python.

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

>

>

Produzione:

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

Complessità temporale: O(n*n)
Spazio ausiliario: O(n*n)

Esempio 2: aggiunta e sottrazione di valori a una matrice con la comprensione delle liste

Esecuzione di addizioni e sottrazioni di base utilizzando la comprensione delle liste.

Python3




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

>

>

Produzione:

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

Complessità temporale: O(n*n)
Spazio ausiliario: O(n*n)

Esempio 3: programma Python per moltiplicare e dividere due matrici

Esecuzione della moltiplicazione e divisione di base utilizzando il ciclo Python.

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

>

>

Produzione:

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

Complessità temporale: O(n*n)
Spazio ausiliario: O(n*n)

Trasporre in matrice

Esempio: programma Python per trasporre una matrice utilizzando il loop

La trasposizione di una matrice si ottiene trasformando le righe in colonne e le colonne in righe. In altre parole, la trasposizione di A[][] si ottiene cambiando A[i][j] 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)>

>

>

Produzione:

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

Complessità temporale: O(n*n)
Spazio ausiliario: O(n*n)

Matrice usando Numpy

Crea una matrice usando Numpy

Qui stiamo creando un array Numpy utilizzando numpy.random e a modulo casuale .

Python3




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

>

>

Produzione:

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

Operazioni matematiche su matrici in Python usando Numpy

Qui copriremo diverse operazioni matematiche come addizione, sottrazione, moltiplicazione e divisione utilizzando Numpy.

Python3


cos'è un hashset in Java



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

>

>

Produzione:

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

Prodotto punto e croce con Matrix

Qui troveremo i prodotti interno, esterno e incrociato di matrici e vettori utilizzando NumPy in 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)>

>

>

Produzione:

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

Trasposizione della matrice in Python usando Numpy

Per eseguire l'operazione di trasposizione nella matrice possiamo usare il file numpy.transpose() metodo.

Python3




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

>

>

Produzione:

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

Creare un matrice vuota con NumPy in Python

Inizializzare un array vuoto, utilizzando il metodo 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)>

>

>

Produzione:

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

Affettare in Matrix usando Numpy

L'affettamento è il processo di scelta di righe e colonne specifiche da una matrice e quindi di creazione di una nuova matrice rimuovendo tutti gli elementi non selezionati. Nel primo esempio, stiamo stampando l'intera matrice, nel secondo passiamo 2 come indice iniziale, 3 come ultimo indice e salto indice come 1. Lo stesso viene utilizzato nella stampa successiva, abbiamo appena cambiato l'indice vai al 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>])>

>

>

Produzione:

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

Elimina righe e colonne usando Numpy

Qui, stiamo provando a eliminare righe utilizzando la funzione np.delete(). Nel codice, abbiamo prima provato a cancellare lo 0thriga, quindi abbiamo provato a eliminare 2ndriga, quindi la 3rdriga.

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

>

>

Produzione:

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

Aggiungi righe/colonne nell'array Numpy

Abbiamo aggiunto un'altra colonna al 4thposizione utilizzando 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))>

>

>

Produzione:

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