Python Matrice: esempi di trasposizione, moltiplicazione, array NumPy
Che cos'è la Python Matrice?
A Python matrix è un array rettangolare bidimensionale specializzato di dati memorizzati in righe e colonne. I dati in una matrice possono essere numeri, stringhe, espressioni, simboli, ecc. La matrice è una delle strutture dati importanti che possono essere utilizzate nei calcoli matematici e scientifici.
Come fare Python Le matrici funzionano?
I dati all'interno dell'array bidimensionale in formato matrice appaiono come segue:
Passo 1) Mostra una matrice 2×2. Ha due righe e 2 colonne. I dati all'interno della matrice sono numeri. La riga1 ha valori 2,3 e la riga2 ha valori 4,5. Le colonne, ad esempio col1, hanno valori 2,4 e col2 ha valori 3,5.
Passo 2) Mostra una matrice 2×3. Ha due righe e tre colonne. I dati all'interno della prima riga, ovvero riga1, ha valori 2,3,4 e riga2 ha valori 5,6,7. Le colonne col1 hanno valori 2,5, col2 ha valori 3,6 e col3 ha valori 4,7.
Allo stesso modo, puoi avere i tuoi dati archiviati nella matrice nxn in PythonSu una matrice si possono eseguire numerose operazioni, come addizione, sottrazione, moltiplicazione, ecc.
Python non ha un modo semplice per implementare un tipo di dati matrice.
La matrice Python fa uso di array e lo stesso può essere implementato.
- Creare un Python Matrice che utilizza il tipo di dati elenco annidato
- Creare Python Matrice che utilizza array da Python Pacchetto Numpy
Creare Python Matrice che utilizza un tipo di dati di elenco annidato
In Python, gli array sono rappresentati usando il tipo di dati list. Quindi ora useremo la lista per creare una matrice python.
Creeremo una matrice 3×3, come mostrato di seguito:
- La matrice ha 3 righe e 3 colonne.
- La prima riga in un formato elenco sarà la seguente: [8,14,-6]
- La seconda riga in un elenco sarà: [12,7,4]
- La terza riga in un elenco sarà: [-11,3,21]
La matrice all'interno di un elenco con tutte le righe e colonne è come mostrata di seguito:
List = [[Row1], [Row2], [Row3] ... [RowN]]
Quindi, secondo la matrice sopra elencata, il tipo di elenco con i dati della matrice è il seguente:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Per leggere i dati all'interno Python Matrice utilizzando una lista.
Faremo uso della matrice sopra definita. L'esempio leggerà i dati, stamperà la matrice, visualizzerà l'ultimo elemento di ogni riga.
Esempio: Per stampare la matrice
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Produzione:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Esempio 2: leggere l'ultimo elemento di ogni riga
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To read the last element from each row. for i in range(matrix_length): print(M1[i][-1])
Produzione:
-6 4 21
Esempio 3: stampare le righe nella matrice
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To print the rows in the Matrix for i in range(matrix_length): print(M1[i])
Produzione:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
Aggiunta di matrici utilizzando la lista nidificata
Possiamo facilmente aggiungere due matrici date. Le matrici qui saranno sotto forma di elenco. Lavoriamo su un esempio che avrà cura di sommare le matrici date.
Matrice 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Matrice 2:
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
Ultimo inizializzerà una matrice che memorizzerà il risultato di M1 + M2.
Matrice 3:
M3 = [[0,0,0], [0,0,0], [0,0,0]]
Esempio: aggiunta di matrici
Per aggiungere, le matrici faranno uso di un ciclo for che eseguirà il loop di entrambe le matrici fornite.
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Add M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] + M2[i][k] #To Print the matrix print("The sum of Matrix M1 and M2 = ", M3)
Produzione:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Moltiplicazione di matrici utilizzando liste nidificate
Per moltiplicare le matrici, possiamo utilizzare il ciclo for su entrambe le matrici come mostrato nel codice seguente:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Multiply M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] * M2[i][k] #To Print the matrix print("The multiplication of Matrix M1 and M2 = ", M3)
Produzione:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Creare Python Matrice che utilizza array da Python Pacchetto Numpy
La libreria Python Numpy aiuta a gestire gli array. Numpy elabora un array un po' più velocemente rispetto all'elenco.
Per funzionare con Numpy, devi prima installarlo. Seguire i passaggi indicati di seguito per installare Numpy.
Passo 1) Il comando per installare Numpy è:
pip install NumPy
Passo 2) Per utilizzare Numpy nel tuo codice, devi importarlo.
import NumPy
Passo 3) Puoi anche importare Numpy utilizzando un alias, come mostrato di seguito:
import NumPy as np
Utilizzeremo il metodo array() di Numpy per creare una matrice Python.
Esempio: array in Numpy da creare Python Matrice
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Produzione:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
Matrice Operazione utilizzando Numpy.Array()
Le operazioni sulla matrice che possono essere eseguite sono addizione, sottrazione, moltiplicazione, trasposizione, lettura di righe, colonne di una matrice, suddivisione della matrice, ecc. In tutti gli esempi, utilizzeremo un metodo array().
Addizione di matrici
Per eseguire l'addizione sulla matrice, creeremo due matrici utilizzando numpy.array() e le aggiungeremo utilizzando l'operatore (+).
Esempio:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 + M2 print(M3)
Produzione:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
Sottrazione di matrice
Per eseguire la sottrazione sulla matrice, creeremo due matrici utilizzando numpy.array() e le sottraremo utilizzando l'operatore (-).
Esempio:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 - M2 print(M3)
Produzione:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
Moltiplicazione di matrici
Per prima cosa creeremo due matrici usando numpy.arary(). Per moltiplicarli, puoi utilizzare il metodo numpy dot(). Numpy.dot() è il prodotto scalare delle matrici M1 e M2. Numpy.dot() gestisce gli array 2D ed esegue moltiplicazioni di matrici.
Esempio:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Produzione:
[[ 93 78] [ -65 -310]]
Trasposizione della matrice
La trasposizione di una matrice viene calcolata modificando le righe come colonne e le colonne come righe. La funzione transpose() di Numpy può essere utilizzata per calcolare la trasposizione di una matrice.
Esempio:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Produzione:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
Affettamento di una matrice
L'affettamento restituirà gli elementi dalla matrice in base all'indice di inizio/fine fornito.
- La sintassi per l'affettatura è – [inizio:fine]
- Se l'indice iniziale non viene fornito, viene considerato 0. Ad esempio [:5], significa [0:5].
- Se la fine non viene superata, prenderà la lunghezza dell'array.
- Se inizio/fine ha valori negativi, l'affettatura verrà eseguita dalla fine dell'array.
Prima di lavorare sullo slicing su una matrice, comprendiamo prima come applicare lo slice su un array semplice.
import numpy as np arr = np.array([2,4,6,8,10,12,14,16]) print(arr[3:6]) # will print the elements from 3 to 5 print(arr[:5]) # will print the elements from 0 to 4 print(arr[2:]) # will print the elements from 2 to length of the array. print(arr[-5:-1]) # will print from the end i.e. -5 to -2 print(arr[:-1]) # will print from end i.e. 0 to -2
Produzione:
[ 8 10 12] [ 2 4 6 8 10] [ 6 8 10 12 14 16] [ 8 10 12 14] [ 2 4 6 8 10 12 14]
Ora implementiamo l'affettamento su Matrix . Per eseguire il sezionamento su una matrice
la sintassi sarà M1[row_start:row_end, col_start:col_end]
- Il primo inizio/fine sarà per la riga, cioè per selezionare le righe della matrice.
- Il secondo inizio/fine sarà per la colonna, cioè per selezionare le colonne della matrice.
La matrice M1 t che utilizzeremo è la seguente:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
Ci sono 4 righe in totale. L'indice inizia da 0 a 3. Lo 0th la riga è [2,4,6,8,10], 1st la riga è [3,6,9,-12,-15] seguita da 2nd e 3rd.
La matrice M1 ha 5 colonne. L'indice inizia da 0 a 4.Lo 0th la colonna ha valori [2,3,4,5], 1st le colonne hanno valori [4,6,8,-10] seguiti da 2nd, 3rd, 4the 5th.
Ecco un esempio che mostra come ottenere i dati di righe e colonne dalla matrice usando lo slicing. Nell'esempio, stiamo stampando 1st e 2nd riga e per le colonne vogliamo la prima, la seconda e la terza colonna. Per ottenere quell'output abbiamo usato: M1[1:3, 1:4]
Esempio:
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[1:3, 1:4]) # For 1:3, it will give first and second row. #The columns will be taken from first to third.
Produzione:
[[ 6 9 -12] [ 8 12 16]]
Esempio: per stampare tutte le righe e le terze colonne
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,3]) # This will print all rows and the third column data.
Produzione:
[ 8 -12 16 -20]
Esempio: per stampare la prima riga e tutte le colonne
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:1,]) # This will print first row and all columns
Produzione:
[[ 2 4 6 8 10]]
Esempio: per stampare le prime tre righe e le prime 2 colonne
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:3,:2])
Produzione:
[[2 4] [3 6] [4 8]]
Accesso alla matrice NumPy
Abbiamo visto come funziona lo slicing. Tenendo conto di ciò, vedremo come ottenere le righe e le colonne dalla matrice.
Per stampare le righe della matrice
Nell'esempio verranno stampate le righe della matrice.
Esempio:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) print(M1[0]) #first row print(M1[1]) # the second row print(M1[-1]) # -1 will print the last row
Produzione:
[3 6 9] [ 5 -10 15] [ 4 8 12]
Per ottenere l'ultima riga, puoi utilizzare l'indice o -1. Ad esempio, la matrice ha 3 righe,
quindi M1[0] ti darà la prima riga,
M1[1] ti darà la seconda riga
M1[2] o M1[-1] ti darà la terza riga o l'ultima riga.
Per stampare le colonne della matrice
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,0]) # Will print the first Column print(M1[:,3]) # Will print the third Column print(M1[:,-1]) # -1 will give you the last column
Produzione:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
Sommario
- A Python matrix è un array rettangolare bidimensionale specializzato di dati memorizzati in righe e colonne. I dati in una matrice possono essere numeri, stringhe, espressioni, simboli, ecc. La matrice è una delle strutture dati importanti che possono essere utilizzate nei calcoli matematici e scientifici.
- Python non ha un modo semplice per implementare un tipo di dati matrice. Python la matrice può essere creata utilizzando un tipo di dati di elenco annidato e utilizzando la libreria numpy.
- La libreria Python Numpy aiuta a gestire gli array. Numpy elabora un array un po' più velocemente rispetto all'elenco.
- Le operazioni sulla matrice che possono essere eseguite sono addizione, sottrazione, moltiplicazione, trasposizione, lettura delle righe e delle colonne di una matrice, suddivisione della matrice, ecc.
- Per aggiungere due matrici, puoi utilizzare numpy.array() e aggiungerle utilizzando l'operatore (+).
- Per moltiplicarli, puoi utilizzare il metodo numpy dot(). Numpy.dot() è il prodotto scalare delle matrici M1 e M2. Numpy.dot() gestisce gli array 2D ed esegue moltiplicazioni di matrici.
- La trasposizione di una matrice viene calcolata modificando le righe come colonne e le colonne come righe. La funzione transpose() di Numpy può essere utilizzata per calcolare la trasposizione di una matrice.
- L'affettamento di una matrice restituirà gli elementi in base all'indice di inizio/fine fornito.