Arrotondare valori con la funzione np.round di NumPy

In Python, la libreria NumPy offre strumenti per gestire grandi volumi di dati, incluse funzionalità per l'arrotondamento. Tra queste, la funzione np.round è particolarmente utile per arrotondare i valori di un array a un numero specifico di cifre decimali.

In questa pagina, esploreremo in dettaglio come utilizzare la funzione np.round di NumPy, evidenziando le sue caratteristiche principali e fornendo esempi pratici per facilitarne l'applicazione.

La funzione np.round di NumPy

La funzione np.round di NumPy viene utilizzata per arrotondare gli elementi di un array a un numero specifico di cifre decimali. La sintassi generale della funzione è la seguente:

numpy.round(a, decimals=0, out=None)

dove:

  • a: array-like input. Può essere un singolo numero, una lista o un array.

  • decimals: numero intero opzionale. Specifica il numero di cifre decimali a cui arrotondare. Il valore predefinito è 0, il che significa che i numeri verranno arrotondati all'intero più vicino.

  • out: array opzionale in cui salvare il risultato. Se non viene specificato, viene restituito un nuovo array.

Esempi di utilizzo della funzione np.round di NumPy

Uno degli usi più semplici di np.round() è arrotondare un singolo numero:

import numpy as np numero = 3.14159 numero_arrotondato = np.round(numero, 2) print(numero_arrotondato)  # Output: 3.14

È possibile applicare np.round() a un intero array di numeri:

import numpy as np array = np.array([1.2345, 2.6789, 3.14159, 4.98765]) array_arrotondato = np.round(array, 3) print(array_arrotondato)  # Output: [1.235 2.679 3.142 4.988]

In questo caso, ogni elemento dell'array viene arrotondato a tre cifre decimali.

Mentre, se si desidera arrotondare i valori di un array agli interi più vicini, è possibile omettere l'argomento decimals o impostarlo a 0:

import numpy as np array = np.array([1.2345, 2.6789, 3.14159, 4.98765]) array_arrotondato = np.round(array) print(array_arrotondato)  # Output: [1. 3. 3. 5.]

Arrotondamento negativo

La funzione np.round consente anche l'arrotondamento con un numero negativo di cifre decimali, che arrotonda i numeri a sinistra del punto decimale:

import numpy as np array = np.array([123.45, 678.89, 314.159]) array_arrotondato = np.round(array, -1) print(array_arrotondato)  # Output: [120. 680. 310.]

Considerazioni sulle prestazioni di np.round

NumPy è ottimizzato per operazioni su array di grandi dimensioni. Utilizzare np.round per arrotondare grandi dataset è molto più efficiente rispetto all'uso di funzioni di arrotondamento standard di Python come round applicate in modo iterativo.