NumPy - Tipi di dati

NumPy supporta una varietà molto maggiore di tipi numerici rispetto a Python. La tabella seguente mostra diversi tipi di dati scalari definiti in NumPy.

Sr.No. Tipi di dati e descrizione
1

bool_

Booleano (Vero o Falso) memorizzato come byte

2

int_

Tipo intero predefinito (uguale a C long; normalmente int64 o int32)

3

intc

Identico a C int (normalmente int32 o int64)

4

intp

Numero intero utilizzato per l'indicizzazione (uguale a C ssize_t; normalmente int32 o int64)

5

int8

Byte (da -128 a 127)

6

int16

Numero intero (da -32768 a 32767)

7

int32

Numero intero (da -2147483648 a 2147483647)

8

int64

Numero intero (da -9223372036854775808 a 9223372036854775807)

9

uint8

Numero intero senza segno (da 0 a 255)

10

uint16

Numero intero senza segno (da 0 a 65535)

11

uint32

Numero intero senza segno (da 0 a 4294967295)

12

uint64

Numero intero senza segno (da 0 a 18446744073709551615)

13

float_

Abbreviazione di float64

14

float16

Float a mezza precisione: bit di segno, esponente a 5 bit, mantissa a 10 bit

15

float32

Float a precisione singola: bit di segno, esponente a 8 bit, mantissa a 23 bit

16

float64

Float a doppia precisione: bit di segno, esponente a 11 bit, mantissa a 52 bit

17

complex_

Abbreviazione di complex128

18

complex64

Numero complesso, rappresentato da due float a 32 bit (componenti reali e immaginari)

19

complex128

Numero complesso, rappresentato da due float a 64 bit (componenti reali e immaginari)

I tipi numerici NumPy sono istanze di oggetti dtype (data-type), ciascuno con caratteristiche uniche. I dtypes sono disponibili come np.bool_, np.float32, ecc.

Oggetti tipo di dati (dtype)

Un oggetto di tipo di dati descrive l'interpretazione del blocco fisso di memoria corrispondente a un array, a seconda dei seguenti aspetti:

  • Tipo di dati (intero, float o oggetto Python)

  • Dimensioni dei dati

  • Ordine byte (little-endian o big-endian)

  • In caso di tipo strutturato, i nomi dei campi, il tipo di dati di ogni campo e parte del blocco di memoria preso da ogni campo.

  • Se il tipo di dati è un sottoarray, la sua forma e il tipo di dati

L'ordine dei byte viene deciso anteponendo "<" o ">" al tipo di dati. '<' significa che la codifica è little-endian (il meno significativo è memorizzato nell'indirizzo più piccolo). '>' significa che la codifica è big-endian (il byte più significativo è memorizzato nell'indirizzo più piccolo).

Un oggetto dtype viene costruito utilizzando la seguente sintassi:

numpy.dtype(object, align, copy)

I parametri sono:

  • Object - Da convertire in oggetto di tipo dati

  • Align - Se true, aggiunge il riempimento al campo per renderlo simile a C-struct

  • Copy- Crea una nuova copia dell'oggetto dtype. Se false, il risultato è un riferimento all'oggetto del tipo di dati incorporato

Esempio 1

# using array-scalar type 
import numpy as np 
dt = np.dtype(np.int32) 
print dt

L'output è il seguente:

int32

Esempio 2

#int8, int16, int32, int64 can be replaced by equivalent string 'i1', 'i2','i4', etc. 
import numpy as np 

dt = np.dtype('i4')
print dt

L'output è il seguente:

int32

Esempio 3

# using endian notation 
import numpy as np 
dt = np.dtype('>i4') 
print dt

L'output è il seguente:

>i4

I seguenti esempi mostrano l'uso del tipo di dati strutturato. Qui devono essere dichiarati il ​​nome del campo e il tipo di dati scalare corrispondente.

Esempio 4

# first create structured data type 
import numpy as np 
dt = np.dtype([('age',np.int8)]) 
print dt

L'output è il seguente:

[('age', 'i1')]

Esempio 5

# now apply it to ndarray object 
import numpy as np 

dt = np.dtype([('age',np.int8)]) 
a = np.array([(10,),(20,),(30,)], dtype = dt) 
print a

L'output è il seguente:

[(10,) (20,) (30,)]

Esempio 6

# file name can be used to access content of age column 
import numpy as np 

dt = np.dtype([('age',np.int8)]) 
a = np.array([(10,),(20,),(30,)], dtype = dt) 
print a['age']

L'output è il seguente:

[10 20 30]

Esempio 7

I seguenti esempi definiscono un tipo di dati strutturato chiamato student con un campo stringa "nome", un file integer field 'età' e a float field"segni". Questo dtype viene applicato all'oggetto ndarray.

import numpy as np 
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
print student

L'output è il seguente:

[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')])

Esempio 8

import numpy as np 

student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) 
print a

L'output è il seguente:

[('abc', 21, 50.0), ('xyz', 18, 75.0)]

Ogni tipo di dati incorporato ha un codice carattere che lo identifica in modo univoco.

  • 'b' - booleano

  • 'i' - (con segno) intero

  • 'u' - numero intero senza segno

  • 'f' - virgola mobile

  • 'c' - virgola mobile complessa

  • 'm' - timedelta

  • 'M' - datetime

  • 'O' - Oggetti (Python)

  • 'S', 'a' - (byte-) stringa

  • 'U' - Unicode

  • 'V' - dati grezzi (nulli)