Python Matrice: Trasposizione, Moltiplicazione, Array NumPy

โšก Riepilogo intelligente

A Python Una matrice รจ una struttura dati bidimensionale disposta in righe e colonne, utilizzata in matematica e scienze. Qui imparerai a creare matrici con liste annidate e NumPy, ed eseguire operazioni di addizione, moltiplicazione, trasposizione e slicing.

  • ๐Ÿ”ข Che cosa รจ: Una matrice รจ una disposizione bidimensionale di dati in righe e colonne.
  • ๐Ÿ“‹ Elenchi nidificati: Python Le matrici possono essere costruite come un elenco di elenchi.
  • ๐Ÿงฎ Array NumPy: La funzione numpy.array() crea matrici piรน veloci e ricche di funzionalitร .
  • โž• Operazioni: Aggiungi, sottraitract e moltiplicare matrici con operatori o numpy.dot().
  • ๐Ÿ”„ Trasponi e seziona: La funzione transpose() scambia righe e colonne; la funzione slicing seleziona sottomatrici.
  • ๐Ÿค– Aiuto tramite intelligenza artificiale: Strumenti di intelligenza artificiale come Copilot generano istantaneamente codice per matrici e NumPy.

Python Matrice

Cosa รจ 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 Python. Molte operazioni possono essere eseguite su un'addizione simile a una matrice, sottrazionetraczione, 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
  • Crea Python Matrice che utilizza array da Python Pacchetto Numpy

Crea 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:

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

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

L'operazione di matrice che puรฒ essere eseguita รจ l'addizione, la sottrazionetracoperazioni come moltiplicazione, trasposizione, lettura delle righe e delle colonne di una matrice, sezionamento della matrice, ecc. In tutti gli esempi, utilizzeremo il 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]]

Sottomatricetracproduzione

Per eseguire il subtraczione sulla matrice, creeremo due matrici usando numpy.array() e subtract loro usando 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]

DOMANDE FREQUENTI

Una matrice รจ una disposizione rettangolare bidimensionale di dati organizzati in righe e colonne. Python Non dispone di un tipo di matrice integrato, quindi รจ necessario utilizzare liste annidate o la libreria NumPy.

Crea una matrice come una lista annidata, ad esempio [[8, 14, -6], [12, 7, 4]], oppure con numpy.array() per una matrice piรน veloce e potente che supporta le operazioni integrate.

NumPy elabora gli array piรน velocemente delle semplici liste e fornisce operazioni matriciali integrate come addizione, prodotto scalare, trasposizione e slicing, rendendo il codice matriciale piรน breve ed efficiente.

Per una vera moltiplicazione tra matrici, utilizzare numpy.dot(M1, M2) o M1.dot(M2). Gli operatori piรน e asterisco sugli array NumPy eseguono invece addizione e moltiplicazione elemento per elemento.

Richiama il metodo transpose() su un array NumPy, ad esempio M1.transpose(). Questo metodo scambia righe e colonne, in modo che l'elemento che si trova nella riga i, colonna j, venga spostato nella riga j, colonna i.

Gli assistenti basati sull'IA come GitHub Copilot completano automaticamente il codice degli array NumPy, generano operazioni su matrici come prodotti scalari e trasposizioni e spiegano la sintassi di slicing mentre scrivi Python.

Sรฌ. Gli strumenti basati sull'intelligenza artificiale possono automatizzare la scrittura di pipeline NumPy, scegliere operazioni vettoriali efficienti al posto dei cicli e generare codice per attivitร  di algebra lineare come la risoluzione di sistemi di equazioni.

Utilizzare M1[row_start:row_end, col_start:col_end] per selezionare una sottomatrice. Omettendo un inizio o una fine, vengono utilizzati i limiti della matrice e gli indici negativi vengono conteggiati a partire dalla fine.

Riassumi questo post con: