Matrice di stampa in Python

Manav Narula 21 dicembre 2022
  1. Usa il cicli for per stampare la matrice in Python
  2. Usa il metodo di comprensione della lista per stampare la matrice in Python
Matrice di stampa in Python

Le matrici sono molto utilizzate in matematica e statistica per la rappresentazione dei dati e la risoluzione di più equazioni lineari. Nella programmazione, gli array 2D vengono trattati come una matrice.

In Python, abbiamo molte funzioni e classi disponibili per eseguire diverse operazioni sulle matrici. In questo tutorial impareremo come stampare una matrice in Python.

Mostriamo come un array 2-D viene normalmente stampato in Python con tutte le parentesi quadre e nessuna spaziatura corretta nel codice seguente.

import numpy as np

a = np.array([[1, 2, 3], [3, 4, 5], [7, 8, 9]])

print(a)

Produzione:

[[1 2 3]
 [3 4 5]
 [7 8 9]]

Nei metodi discussi di seguito, stamperemo l’array in un formato di tipo matrice pulito.

Usa il cicli for per stampare la matrice in Python

Questo metodo itererà attraverso la matrice usando il cicli for e stamperà ogni riga individualmente dopo averla formattata correttamente. Il codice seguente mostra come.

import numpy as np

a = np.array([[1, 2, 3], [3, 4, 5], [7, 8, 9]])

for line in a:
    print("  ".join(map(str, line)))

Produzione:

1  2  3
3  4  5
7  8  9

Usiamo la funzione map, che converte l’intera riga in una stringa, e poi applichiamo la funzione join a questa intera riga che la converte in una singola stringa ed elementi separati dal separatore specificato.

Usa il metodo di comprensione della lista per stampare la matrice in Python

La comprensione degli elenchi offre un modo conciso ed elegante per lavorare con gli elenchi in una singola riga di codice.

Anche questo metodo utilizza il cicli for ma è considerato un po’ più veloce rispetto all’uso tradizionale, come nel metodo precedente.

Prendi il codice seguente come esempio.

import numpy as np

a = np.array([[1, 2, 3], [3, 4, 5], [7, 8, 9]])

print("\n".join(["".join(["{:4}".format(item) for item in row]) for row in a]))

Produzione:

   1   2   3
   3   4   5
   7   8   9

Sebbene il codice precedente utilizzi quasi le stesse funzioni del metodo precedente, lo fa in modo più efficiente e in una riga. L’altra differenza principale è la funzione format() usata qui per fornire la spaziatura necessaria tra gli elementi della stringa.

Un altro modo per utilizzare questo metodo è mostrato di seguito. Qui dividiamo il codice separatamente in singole righe e proviamo a fare in modo che la matrice assomigli a una struttura simile a una tabella.

import numpy as np

a = np.array([[1, 2, 3], [3, 4, 5], [7, 8, 9]])

s = [[str(e) for e in row] for row in a]
lens = [max(map(len, col)) for col in zip(*s)]
fmt = "\t".join("{{:{}}}".format(x) for x in lens)
table = [fmt.format(*row) for row in s]
print("\n".join(table))

Produzione:

1	2	3
3	4	5
7	8	9
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn