API · NumPy
Funzione Numpy numpy.loadtxt()
La funzione numpy.loadtxt() carica i dati dal file di testo.
In questa pagina
numpy.loadtxt() legge dati numerici da un semplice file di testo o da un oggetto simile a un file e li restituisce come array NumPy. Gli esempi mostrano come caricare valori separati da spazi, scegliere un tipo di dato, specificare un separatore, selezionare colonne e assegnare colonne ad array distinti.
Sintassi, parametri e valore restituito
Gli esempi mostrano questi modi di chiamare la funzione: numpy.loadtxt(source), numpy.loadtxt(source, dtype="int"), numpy.loadtxt(source, dtype="int", delimiter=","), numpy.loadtxt(source, dtype="int", usecols=(0, 1)) e numpy.loadtxt(source, dtype="int", unpack=True). La sorgente può essere un percorso oppure un oggetto simile a un file, come StringIO. La funzione restituisce un array NumPy; gli argomenti scelti determinano il tipo dei valori, il separatore, le colonne da leggere o il modo in cui vengono assegnate le colonne.
Leggere un file di testo con numpy.loadtxt()
Esegui questo esempio:
from io import StringIO
import numpy as np
source = StringIO("""3 6 8
12 9 1
2 3 4""")
values = np.loadtxt(source)
print(values)
[[ 3. 6. 8.]
[12. 9. 1.]
[ 2. 3. 4.]]
StringIO fornisce il testo tramite un oggetto simile a un file, rendendo l’esempio autonomo. Per leggere un file di testo salvato, passa invece il relativo percorso come sorgente. Senza l’argomento dtype, in questo esempio la funzione usa il suo tipo predefinito a virgola mobile.
Impostare dtype durante il caricamento dei valori
Imposta dtype="int" per caricare i valori come numeri interi:
from io import StringIO
import numpy as np
source = StringIO("""3 6 8
12 9 1
2 3 4""")
values = np.loadtxt(source, dtype="int")
print(values)
[[ 3 6 8]
[12 9 1]
[ 2 3 4]]
Questo modifica il tipo degli elementi dell’array e mantiene invariato l’input separato da spazi.
Impostare delimiter per i valori separati
Per i valori separati da virgole, imposta delimiter="," in modo che corrisponda alle virgole presenti nell’input:
from io import StringIO
import numpy as np
source = StringIO("""3, 6, 8
12, 9, 1
2, 3, 4""")
values = np.loadtxt(source, dtype="int", delimiter=",")
print(values)
[[ 3 6 8]
[12 9 1]
[ 2 3 4]]
Il separatore specificato con delimiter deve corrispondere a quello usato tra i valori. Nell’esempio ci sono spazi dopo le virgole, ma la virgola resta il separatore dei campi.
Selezionare colonne con usecols
Usa usecols per leggere solo le colonne selezionate. Gli indici partono da zero, quindi (0, 1) seleziona la prima e la seconda colonna:
from io import StringIO
import numpy as np
source = StringIO("""3 6 8
12 9 1
2 3 4""")
values = np.loadtxt(source, dtype="int", usecols=(0, 1))
print(values)
[[ 3 6]
[12 9]
[ 2 3]]
La terza colonna dell’input non viene inclusa nell’array restituito.
Separare le colonne in array distinti
Imposta unpack=True per assegnare ogni colonna dell’input a un array distinto. Le tre variabili qui sotto corrispondono alle tre colonne di ogni riga dell’input:
from io import StringIO
import numpy as np
source = StringIO("""3 6 8
12 9 1
2 3 4""")
x, y, z = np.loadtxt(source, dtype="int", unpack=True)
print(x)
print(y)
print(z)
[ 3 12 2]
[6 9 3]
[8 1 4]