Tipi di dati NumPy
Tipi di dati in Python
Per impostazione predefinita Python ha questi tipi di dati:
strings
- utilizzato per rappresentare dati di testo, il testo è riportato tra virgolette. es. "ABCD"integer
- utilizzato per rappresentare numeri interi. ad esempio -1, -2, -3float
- usato per rappresentare numeri reali. es. 1.2, 42.42boolean
- usato per rappresentare Vero o Falso.complex
- usato per rappresentare numeri complessi. es. 1.0 + 2.0j, 1.5 + 2.5j
Tipi di dati in NumPy
NumPy ha alcuni tipi di dati extra e fa riferimento a tipi di dati con un carattere, come i
per interi, u
per interi senza segno ecc.
Di seguito è riportato un elenco di tutti i tipi di dati in NumPy e dei caratteri utilizzati per rappresentarli.
i
- numero interob
- booleanou
- intero senza segnof
- galleggiantec
- galleggiante complessom
- delta temporaleM
- appuntamentoO
- oggettoS
- cordaU
- stringa unicodeV
- blocco di memoria fisso per altri tipi (void)
Verifica del tipo di dati di un array
L'oggetto array NumPy ha una proprietà chiamata dtype
che restituisce il tipo di dati dell'array:
Esempio
Ottieni il tipo di dati di un oggetto array:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
Esempio
Ottieni il tipo di dati di un array contenente stringhe:
import numpy as np
arr = np.array(['apple',
'banana', 'cherry'])
print(arr.dtype)
Creazione di array con un tipo di dati definito
Usiamo la array()
funzione per creare array, questa funzione può prendere un argomento opzionale: dtype
che ci permette di definire il tipo di dati previsto degli elementi dell'array:
Esempio
Crea un array con tipo di dati stringa:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='S')
print(arr)
print(arr.dtype)
Per i
, u
, f
,
S
e U
possiamo anche definire la dimensione.
Esempio
Crea un array con tipo di dati 4 byte intero:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='i4')
print(arr)
print(arr.dtype)
Cosa succede se un valore non può essere convertito?
Se viene fornito un tipo in cui non è possibile eseguire il cast di elementi, NumPy solleverà un ValueError.
ValueError: in Python ValueError viene generato quando il tipo di argomento passato a una funzione è imprevisto/non corretto.
Esempio
Una stringa non intera come 'a' non può essere convertita in intera (rileverà un errore):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
Conversione del tipo di dati su array esistenti
Il modo migliore per modificare il tipo di dati di un array esistente consiste nell'eseguire una copia dell'array con il astype()
metodo.
La astype()
funzione crea una copia dell'array e consente di specificare il tipo di dati come parametro.
Il tipo di dati può essere specificato usando una stringa, come 'f'
per float,
'i'
per intero ecc. oppure puoi usare il tipo di dati direttamente come
float
per float e int
per intero.
Esempio
Modifica il tipo di dati da float a intero utilizzando 'i'
come valore del parametro:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
Esempio
Modifica il tipo di dati da float a intero utilizzando int
come valore del parametro:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
Esempio
Cambia il tipo di dati da intero a booleano:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)