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, -3
  • float- usato per rappresentare numeri reali. es. 1.2, 42.42
  • boolean- 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 iper interi, uper 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 intero
  • b- booleano
  • u- intero senza segno
  • f- galleggiante
  • c- galleggiante complesso
  • m- delta temporale
  • M- appuntamento
  • O- oggetto
  • S- corda
  • U- stringa unicode
  • V- 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, Se Upossiamo 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 floatper float e intper 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 intcome 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)

Mettiti alla prova con gli esercizi

Esercizio:

NumPy usa un carattere per rappresentare ciascuno dei seguenti tipi di dati, quale?

i = integer
 = boolean
 = unsigned integer
 = float
 = complex float
 = timedelta
 = datatime
 = object
 = string