6️⃣🧮 NumPy ufunc (Universal Functions)
Estimated reading: 3 minutes 291 views

NumPy ufunc Rounding Decimals – Round, Floor, Ceil & Truncate Arrays

Introduction – Why Learn NumPy Rounding ufuncs?

In data science, engineering, or finance, rounding numbers is often necessary to control precision, simplify output, or prepare data for presentation. NumPy’s rounding ufuncs give you fast, element-wise control over how decimal values are treated—whether you want to round off, floor, ceil, or truncate.

By the end of this guide, you’ll:

  • Round decimal values with np.round() and np.around()
  • Use np.floor(), np.ceil(), and np.trunc() for directional rounding
  • Understand the difference between each rounding method
  • Handle multi-dimensional and broadcastable arrays

Step 1: Basic Rounding with np.round() / np.around()

import numpy as np

arr = np.array([3.14159, 2.71828, 1.61803])
rounded = np.round(arr, 2)
print(rounded)

Output:

[3.14 2.72 1.62]

Explanation:

  • Rounds each element to 2 decimal places
  • np.around() is an alias for np.round()

Step 2: Use np.floor() to Always Round Down

arr = np.array([3.9, 2.1, -1.7])
print(np.floor(arr))

Output:

[ 3.  2. -2.]

Explanation:

  • Always rounds down to the nearest integer, even for negatives
    Good for binning or clipping to safe lower bounds

Step 3: Use np.ceil() to Always Round Up

print(np.ceil(arr))

Output:

[ 4.  3. -1.]

Explanation:

  • Always rounds up to the nearest integer, regardless of sign
    Useful for setting conservative upper bounds

Step 4: Use np.trunc() to Remove Decimals (Toward Zero)

print(np.trunc(arr))

Output:

[ 3.  2. -1.]

Explanation:

  • Rounds toward zero: removes the fractional part
    Best for keeping integer part only, ignoring direction

Summary of Rounding Functions

FunctionRounds TowardKeeps DecimalsBehavior Example (−1.7)
np.round()Nearest value−2.0
np.floor()Negative infinity−2.0
np.ceil()Positive infinity−1.0
np.trunc()Toward zero−1.0

Step 5: Apply to Multi-Dimensional Arrays

matrix = np.array([[1.234, 2.678], [3.141, 4.999]])
print(np.round(matrix, 1))

Output:

[[1.2 2.7]
 [3.1 5. ]]

Rounding works element-wise on matrices of any shape.


Bonus: Round to Integers

arr = np.array([1.5, 2.5, 3.5])
print(np.round(arr))  # Output: [2. 2. 4.]

NumPy rounds to the nearest even number when the decimal is exactly .5 → known as round half to even (bankers’ rounding).


Summary – Recap & Next Steps

NumPy provides efficient element-wise rounding ufuncs that give you precise control over how decimal values are treated—whether you’re trimming decimals, setting bounds, or converting to whole numbers.

Key Takeaways:

  • round() and around() round to specified decimal places
  • floor() and ceil() always go in one direction
  • trunc() cuts off decimals without rounding
  • All methods support arrays and broadcasting

Real-world relevance: Essential for financial modeling, data reporting, image quantization, and machine learning preprocessing.


FAQs – NumPy Rounding ufuncs

What’s the difference between round() and trunc()?
round() goes to nearest value, trunc() cuts off decimals toward zero.

Why does NumPy round 2.5 to 2 instead of 3?
It uses bankers’ rounding (round to even) for .5 values.

Can I round to nearest tenth, hundredth, etc.?
Yes. Use np.round(arr, decimals=1 or 2).

Do these work on multi-dimensional arrays?
Yes. All rounding ufuncs are broadcasted and element-wise.

How to round and cast to integer type?
Use np.round(arr).astype(int).


Share Now :
Share

NumPy ufunc Rounding Decimals

Or Copy Link

CONTENTS
Scroll to Top