Tutorial Numpy - Tipo di dati e conversione NumPy

Jinku Hu 18 luglio 2021
  1. Tipo di dati NumPy
  2. Conversione del tipo di dati
Tutorial Numpy - Tipo di dati e conversione NumPy

Il tipo di dati - dtype in NumPy è diverso dai tipi di dati primitivi in Python, per esempio, dtype ha il tipo con risoluzione più alta che è utile nel calcolo dei dati.

Tipo di dati NumPy

Tipo di dati Descrizione
bool Booleano
int8 8-bit firmato intero
int16 16-bit firmato intero
int32 intero firmato a 32 bit
int64 64-bit firmato intero
uint8 8-bit non firmato intero
uint16 16 bit non firmato intero
uint32 32-bit non firmato intero
uint64 64-bit non firmato intero
float16 Numero in virgola mobile a 16 bit
float32 Numero in virgola mobile a 32 bit
float64 Numero a virgola mobile a 64 bit
complex64 Numero complesso a 64 bit
complex128 Numero complesso a 128 bit

Quando si crea un nuovo dato ndarray, si può definire il tipo di dati dell’elemento per stringa o per costanti di tipo di dati nella libreria NumPy.

import numpy as np

# by string
test = np.array([4, 5, 6], dtype="int64")

# by data type constant in numpy
test = np.array([7, 8, 8], dtype=np.int64)

Conversione del tipo di dati

Dopo che l’istanza di dati è stata creata, si può cambiare il tipo dell’elemento con il metodo astype(), come ad esempio da intero a fluttuante e così via.

>>> import numpy as np
>>> test = np.array([11, 12, 13, 14], dtype="int32")
>>> x = test.astype('float32')
>>> x
array([11., 12., 13., 14.], dtype=float32)
>>> test, test.dtype
(array([11, 12, 13, 14]), dtype('int32'))
Attenzione
Il metodo di conversione del tipo di dati restituirà solo una nuova istanza dell’array, e i dati e le informazioni dell’istanza originale dell’array non sono cambiati.
Autore: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook