These functions help you change numbers to simpler forms. You can round numbers, or always go down or up to the nearest whole number.
np.round(), np.floor(), np.ceil() in NumPy
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
NumPy
np.round(array, decimals=0) np.floor(array) np.ceil(array)
np.round() rounds to the nearest value with optional decimals.
np.floor() always rounds down to the nearest whole number.
np.ceil() always rounds up to the nearest whole number.
Examples
NumPy
np.round(np.array([1.5, 2.3, 3.7]))
NumPy
np.round(np.array([1.234, 2.345, 3.456]), decimals=2)
NumPy
np.floor(np.array([1.7, 2.3, 3.9]))
NumPy
np.ceil(np.array([1.2, 2.8, 3.1]))
Sample Program
This program shows how each function changes the numbers. It prints the original numbers, then the rounded, floored, and ceiled results.
NumPy
import numpy as np numbers = np.array([1.5, 2.3, 3.7, -1.2, -2.8]) rounded = np.round(numbers) floored = np.floor(numbers) ceiled = np.ceil(numbers) print('Original:', numbers) print('Rounded:', rounded) print('Floored:', floored) print('Ceiled:', ceiled)
Important Notes
Negative numbers behave the same way: floor goes down (more negative), ceil goes up (less negative).
Use decimals in np.round() to control how many decimal places to keep.
Summary
np.round() changes numbers to nearest values, with optional decimals.
np.floor() always rounds numbers down to the nearest whole number.
np.ceil() always rounds numbers up to the nearest whole number.
Practice
1. What does the function
np.floor() do to a decimal number?easy
Solution
Step 1: Understand the behavior of np.floor()
It always rounds any decimal number down to the nearest whole number, regardless of the decimal part.Step 2: Compare with other rounding functions
Unlike np.ceil() which rounds up, np.floor() always rounds down.Final Answer:
Rounds the number down to the nearest whole number -> Option AQuick Check:
np.floor(3.7) = 3 [OK]
Hint: Floor always rounds down, no matter the decimal [OK]
Common Mistakes:
- Confusing floor with ceil
- Thinking floor rounds to nearest integer
- Assuming floor changes only if decimal > 0.5
2. Which of the following is the correct syntax to round the array
arr = np.array([1.2, 2.5, 3.7]) to 1 decimal place using np.round()?easy
Solution
Step 1: Check np.round() parameter for decimals
The parameter to specify decimal places is named 'decimals' and expects an integer.Step 2: Validate each option
A: decimals=0.1 invalid (must be integer). B: np.round(arr, 0) rounds to 0 decimal places. C: np.round(arr, decimals=1) correct. D: 'places' not a valid parameter.Final Answer:
np.round(arr, decimals=1) -> Option BQuick Check:
np.round(arr, decimals=1) rounds to 1 decimal [OK]
Hint: Use decimals=number to set decimal places in np.round() [OK]
Common Mistakes:
- Using wrong parameter name like 'places'
- Passing float instead of int for decimals
- Omitting decimals parameter and expecting decimal rounding
3. What is the output of the following code?
import numpy as np arr = np.array([1.7, 2.3, 3.5]) result = np.ceil(arr) print(result)
medium
Solution
Step 1: Understand np.ceil() behavior on each element
np.ceil() rounds each number up to the nearest whole number: 1.7 -> 2, 2.3 -> 3, 3.5 -> 4.Step 2: Apply np.ceil() to the array
The resulting array is [2., 3., 4.].Final Answer:
[2. 3. 4.] -> Option AQuick Check:
np.ceil rounds decimals up [OK]
Hint: Ceil always rounds decimals up to next integer [OK]
Common Mistakes:
- Confusing ceil with floor
- Expecting rounding to nearest integer
- Ignoring decimal part in output
4. The following code throws an error. What is the mistake?
import numpy as np arr = np.array([1.2, 2.5, 3.7]) result = np.round(arr, decimal=1) print(result)
medium
Solution
Step 1: Identify the parameter name error
The correct parameter name for decimal places in np.round() is 'decimals', not 'decimal'.Step 2: Confirm np.round() usage
np.round() works on numpy arrays and accepts an integer for decimals parameter.Final Answer:
The parameter name should be 'decimals' not 'decimal' -> Option DQuick Check:
Use decimals=1, not decimal=1 [OK]
Hint: Remember parameter is 'decimals', plural, in np.round() [OK]
Common Mistakes:
- Using 'decimal' instead of 'decimals'
- Thinking np.round() only works on scalars
- Passing string instead of integer for decimals
5. You have the array
arr = np.array([1.25, 2.75, 3.5, 4.1]). You want to round each number to the nearest integer but always round .5 up. Which combination of numpy functions will achieve this?hard
Solution
Step 1: Understand rounding .5 up behavior
Standard np.round() rounds .5 to nearest even integer, not always up.Step 2: Use floor with offset to force .5 up rounding
Adding 0.5 then applying np.floor() rounds numbers so that .5 always rounds up.Step 3: Check example
1.25 + 0.5 = 1.75 floor = 1, 2.75 + 0.5 = 3.25 floor = 3, 3.5 + 0.5 = 4.0 floor = 4, 4.1 + 0.5 = 4.6 floor = 4.Final Answer:
Use np.floor(arr + 0.5) -> Option CQuick Check:
Floor after adding 0.5 rounds .5 up [OK]
Hint: Add 0.5 then floor to always round .5 up [OK]
Common Mistakes:
- Using np.round() which rounds .5 to nearest even
- Using ceil incorrectly with subtraction
- Ignoring .5 rounding behavior
