HOWTO · NumPy

Converti array mobile in array Int in NumPy

Scopri come convertire un array NumPy 2D a virgola mobile in un array NumPy 2D intero in Python

In questa pagina

Spesso, dobbiamo convertire i valori float in valori interi per una varietà di casi d’uso. Simile è il caso degli array Python e degli array NumPy.

Usando alcune funzioni di NumPy, possiamo convertire facilmente array NumPy 2D in virgola mobile in array NumPy 2D interi.

In questo articolo, parleremo di due di questi metodi, ndarray.astype() e numpy.asarray().

Converti un array 2D da Float a Int usando ndarray.astype() in NumPy

Gli array NumPy sono di tipo ndarray. Questi oggetti hanno funzioni integrate e una di queste funzioni è astype(). Questa funzione viene utilizzata per creare una copia di un array NumPy di ​​un tipo specifico. Questo metodo accetta cinque argomenti, vale a dire, dtype, order, casting, subok e copy. dtype si riferisce al tipo di dati dell’array copiato. order è un argomento opzionale e controlla il layout di memoria dell’array risultante. Tutte le altre opzioni sono opzionali.

Per saperne di più sugli altri parametri di questa funzione, fare riferimento alla documentazione ufficiale di questa funzione qui

Fare riferimento al codice seguente per comprendere meglio questa funzione.

import numpy as np

myArray = np.array(
    [[1.0, 2.5, 3.234, 5.99, 99.99999], [0.3, -23.543, 32.9999, 33.0000001, -0.000001]]
)
myArray = myArray.astype(int)
print(myArray)

Produzione:

[[  1   2   3   5  99]
 [  0 -23  32  33   0]]

Converti un array 2D da Float a Int utilizzando ndarray.asarray()

In secondo luogo, possiamo usare la funzione asarray(). Questa funzione accetta quattro argomenti, a, dtype, order e like.

  • a si riferisce all’array di input che deve essere convertito.
  • dtype si riferisce al tipo di dati in cui deve essere convertito l’array. È interessante notare che dtype è un argomento opzionale e il suo valore predefinito viene dedotto dall’input stesso.
  • order e like sono anche altri argomenti opzionali. order si riferisce al layout di memoria dell’array di output.

Per saperne di più sugli argomenti di questa funzione, fare riferimento alla documentazione ufficiale di questa funzione qui

import numpy as np

myArray = np.array([[1.923, 2.34, 23.134], [-24.000001, 0.000001, -0.000223]])
myArray = np.asarray(myArray, dtype=int)
print(myArray)

Produzione:

[[  1   2  23]
 [-24   0   0]]

Nel codice precedente, il tipo di dati è menzionato come int e anche l’array di output è un array NumPy intero.