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:

Python Matrice

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:

Creare Python Matrice che utilizza una lista nidificata

  • 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.