How do you round a float array in python?

The numpy.round_() is a mathematical function that rounds an array to the given number of decimals.

Syntax : numpy.round_(arr, decimals = 0, out = None)
Parameters :
array : [array_like] Input array.
decimal : [int, optional] Decimal places we want to round off.

Default = 0. In case of -ve decimal, it specifies the n0. of positions to the left of the decimal point.

out : [optional] Output resulted array

Return :

An array with all array elements being
rounded off, having same type as input. 

 
Code #1 : Working

import numpy as np

in_array = [.5, 1.5, 2.5, 3.5, 4.5, 10.1]

print ("Input array : \n", in_array)

round_off_values = np.round_(in_array)

print ("\nRounded values : \n", round_off_values)

in_array = [.53, 1.54, .71]

print ("\nInput array : \n", in_array)

round_off_values = np.round_(in_array)

print ("\nRounded values : \n", round_off_values)

in_array = [.5538, 1.33354, .71445]

print ("\nInput array : \n", in_array)

round_off_values = np.round_(in_array, decimals = 3)

print ("\nRounded values : \n", round_off_values)

Output :

Input array : 
 [0.5, 1.5, 2.5, 3.5, 4.5, 10.1]

Rounded values : 
 [  0.   2.   2.   4.   4.  10.]

Input array : 
 [0.53, 1.54, 0.71]

Rounded values : 
 [ 1.  2.  1.]

Input array : 
 [0.5538, 1.33354, 0.71445]

Rounded values : 
 [ 0.554  1.334  0.714]

 
Code #2 : Working

import numpy as np

in_array = [1, 4, 7, 9, 12]

print ("Input array : \n", in_array)

round_off_values = np.round_(in_array)

print ("\nRounded values : \n", round_off_values)

in_array = [133, 344, 437, 449, 12]

print ("\nInput array : \n", in_array)

round_off_values = np.round_(in_array, decimals = -2)

print ("\nRounded values upto 2: \n", round_off_values)

in_array = [133, 344, 437, 449, 12]

print ("\nInput array : \n", in_array)

round_off_values = np.round_(in_array, decimals = -3)

print ("\nRounded values upto 3: \n", round_off_values)

Output :

Input array : 
 [1, 4, 7, 9, 12]

Rounded values : 
 [ 1  4  7  9 12]

Input array : 
 [133, 344, 437, 449, 12]

Rounded values upto 2: 
 [100 300 400 400   0]

Input array : 
 [133, 344, 437, 449, 12]

Rounded values upto 3: 
 [0 0 0 0 0]

 
References : https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.round_.html#numpy.round_
.


Last update on August 19 2022 21:51:45 (UTC/GMT +8 hours)

NumPy Mathematics: Exercise-8 with Solution

Write a NumPy program to round array elements to the given number of decimals.

Sample Solution:-

Python Code:

import numpy as np
x = np.round([1.45, 1.50, 1.55])
print(x)
x = np.round([0.28, .50, .64], decimals=1)
print(x)
x = np.round([.5, 1.5, 2.5, 3.5, 4.5]) # rounds to nearest even value
print(x)

Sample Output:

[ 1.  2.  2.]                                                          
[ 0.3  0.5  0.6]                                                       
[ 0.  2.  2.  4.  4.]

Pictorial Presentation:

Python-Numpy Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a NumPy program to calculate the absolute value element-wise.
Next: Write a NumPy program to round elements of the array to the nearest integer.

Python: Tips of the Day

Given each iterable to construct a tuple by adding an index:

>>> a = ['Hello', 'world', '!']
>>> list(enumerate(a))
[(0, 'Hello'), (1, 'world'), (2, '!')]

Can you round floats in Python?

Python has an inbuilt function round(), which will take the float value and round it off. The round() function takes two parameters: Number and Ndigits (optional). Ndigits represent the number of decimal places to round.

How do you round an array value in Python?

To round elements of the array to the nearest integer, use the numpy. rint() method in Python Numpy. For values exactly halfway between rounded decimal values, NumPy rounds to the nearest even value. The out is a location into which the result is stored.

How do you round a float to 2 decimal places in Python?

To round up a float to 2 decimals: ceil() method, passing it the number multiplied by 100 . Divide the result by 100 . The result of the calculation will be the float number rounded up to 2 decimals.

How do you round away zero a float array in Python?

Step 1 - Import the library. import numpy as np. ... .
Step 2 - Defining round_array function. def round_array(x,y): return np.round(x,y) ... .
Step 3 - Setup the Data. test = np.array([32.11, 51.5, 0.112]) ... .
Step 4 - Printing rounded off array. print(round_array(test,0)) ... .
Step 5 - Lets look at our dataset now..