Tipo di dati array in Python

In python un array deve contenere dati omogenei. Pertanto, tutti i dati devono essere dello stesso tipo.

Generalmente, il tipo dei dati è definito automaticamente dai dati immessi nell'array.

Esempio

Definisco un array con tre numeri interi.

>>> v=np.array([1,2,3])

L'oggetto è definito in automatico come intero ( int )

array([1, 2, 3])

Ora provo a sostituire l'elemento 3 con il numero reale 3.3

>>> v=np.array([1,2,3.3])

Tutti gli elementi dell'array diventano numeri reali in virgola mobile ( float ).

array([1. , 2. , 3.3])

Come impostare il tipo di dato dell'array

Per fissare un determinato tipo di dato, posso usare la funzione array con il parametro opzionale dtype, seguito dal tipo di dato da usare.

>>> v=np.array([1. , 2. , 3.3], dtype=int)

L'array viene creato con tutti gli elementi interi, indipendentemente dal contenuto dei dati.

array([1, 2, 3])

Quali sono i tipi di dati di un array

Un array può contenere dati interi, complessi, reali, ecc.

I tipi di dati più frequenti sono:

  • int
    Numeri interi (integer)
    (int8, int16, int32, int64)
  • uint
    Numeri interi non negativi (unsigned)
    (uint8, uint16, uint32, uint64)
  • bool
    Valori booleani ( true o false )
  • float
    Numeri reali in virgola mobile
    (float16, float32, float64, float128)
  • complex
    Numeri complessi
    (complex64, complex128, complex256)

Nota. I tipi di dati int, uint, float e complex hanno diverse dimensioni di dati ( o precisione ) per risparmiare memoria. I dati int e uint possono essere a 8, 16, 32 o 64 bit. I dati float a 16, 32, 64 o 128 bit. I dati complex a 64, 128 o 256 bit. Spesoso non è comunque necessario esplicitare la dimensione dei dati. Basta indicare int, uint, float e complex. Poi sarà l'interprete a scegliere automaticamente la dimensione ottimale per i dati.

Come cambiare il tipo di dati dell'array

Un array deve contenere dati dello stesso tipo.

Quindi, non posso cambiare il formato dati a un solo elemento.

Posso però modificare il formato a tutti gli elementi usando l'attributo dtype della funzione array()

data1=numpy.array(data, dtype=int)

oppure il metodo astype

data1=data.astype(int)

Sono due strade possibili per modificare il formato dei dati di un array già esistente.

Le operazioni tra array con formati dati diversi

Quando elaboro due array con formato diverso, python trasforma uno dei due array nel formato dell'altro, se è richiesto dall'operazione.

Il formato di destinazione dei dati dipende dal tipo di operazioni.

Generalmente, il formato di default è il float ma non è sempre così.

Esempio

Creo due array, uno in formato a virgola mobile e l'altro con numeri complessi.

data1=np.array([1,2,3], dtype=int)
data2=np.array([1,2,3], dtype=complex)

Poi li sommo tra loro

data3=data1+data2

Gli elementi della somma sono trasformati automaticamente in numeri complessi.

>>> data3
array([2.+0.j, 4.+0.j, 6.+0.j])
>>> data3.dtype
dtype('complex128')

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Numpy

I metodi e le funzioni