Bird
Raised Fist0
NumPydata~20 mins

np.round(), np.floor(), np.ceil() in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Rounding Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of np.round() with decimals parameter
What is the output of this code snippet?
NumPy
import numpy as np
arr = np.array([1.234, 2.345, 3.456])
result = np.round(arr, decimals=1)
print(result)
A[1.23 2.35 3.46]
B[2.0 2.0 3.0]
C[1.0 2.0 3.0]
D[1.2 2.3 3.5]
Attempts:
2 left
💡 Hint
np.round rounds each element to the specified number of decimal places.
❓ Predict Output
intermediate
2:00remaining
Output of np.floor() on negative and positive values
What is the output of this code?
NumPy
import numpy as np
arr = np.array([-1.7, -0.2, 0.2, 1.7])
result = np.floor(arr)
print(result)
A[-1. -0. 0. 1.]
B[-2. -1. 0. 1.]
C[-1. -1. 0. 1.]
D[-2. -1. 1. 2.]
Attempts:
2 left
💡 Hint
np.floor returns the largest integer less than or equal to each element.
❓ Predict Output
advanced
2:00remaining
Output of np.ceil() with mixed values
What does this code print?
NumPy
import numpy as np
arr = np.array([1.1, 2.5, 3.0, -1.1, -2.5])
result = np.ceil(arr)
print(result)
A[ 2. 3. 3. -1. -3.]
B[ 1. 3. 3. -2. -3.]
C[ 1. 2. 3. -1. -2.]
D[ 2. 3. 3. -1. -2.]
Attempts:
2 left
💡 Hint
np.ceil returns the smallest integer greater than or equal to each element.
❓ Predict Output
advanced
2:00remaining
Number of elements after rounding and filtering
How many elements are in the array after rounding to 0 decimals and filtering values > 2?
NumPy
import numpy as np
arr = np.array([1.9, 2.1, 2.5, 3.4, 1.2])
rounded = np.round(arr, decimals=0)
filtered = rounded[rounded > 2]
print(len(filtered))
A4
B2
C1
D3
Attempts:
2 left
💡 Hint
Round first, then count how many are greater than 2.
🧠 Conceptual
expert
3:00remaining
Understanding behavior of np.round() with negative decimals
What is the output of this code snippet?
NumPy
import numpy as np
arr = np.array([123.45, 678.91, 234.56])
result = np.round(arr, decimals=-1)
print(result)
A[120. 680. 230.]
B[123. 679. 235.]
C[100. 600. 200.]
D[130. 680. 240.]
Attempts:
2 left
💡 Hint
Negative decimals rounds to the left of the decimal point.

Practice

(1/5)
1. What does the function np.floor() do to a decimal number?
easy
A. Rounds the number down to the nearest whole number
B. Rounds the number up to the nearest whole number
C. Rounds the number to the nearest integer based on decimals
D. Leaves the number unchanged

Solution

  1. 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.
  2. Step 2: Compare with other rounding functions

    Unlike np.ceil() which rounds up, np.floor() always rounds down.
  3. Final Answer:

    Rounds the number down to the nearest whole number -> Option A
  4. Quick 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
A. np.round(arr, decimals=0.1)
B. np.round(arr, decimals=1)
C. np.round(arr, 0)
D. np.round(arr, places=1)

Solution

  1. Step 1: Check np.round() parameter for decimals

    The parameter to specify decimal places is named 'decimals' and expects an integer.
  2. 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.
  3. Final Answer:

    np.round(arr, decimals=1) -> Option B
  4. Quick 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
A. [2. 3. 4.]
B. [2. 2. 3.]
C. [1. 3. 4.]
D. [1. 2. 3.]

Solution

  1. 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.
  2. Step 2: Apply np.ceil() to the array

    The resulting array is [2., 3., 4.].
  3. Final Answer:

    [2. 3. 4.] -> Option A
  4. Quick 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
A. np.round() requires the second argument to be a string
B. np.round() cannot round arrays
C. The array must be integers to use np.round()
D. The parameter name should be 'decimals' not 'decimal'

Solution

  1. Step 1: Identify the parameter name error

    The correct parameter name for decimal places in np.round() is 'decimals', not 'decimal'.
  2. Step 2: Confirm np.round() usage

    np.round() works on numpy arrays and accepts an integer for decimals parameter.
  3. Final Answer:

    The parameter name should be 'decimals' not 'decimal' -> Option D
  4. Quick 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
A. Use np.round(arr)
B. Use np.ceil(arr - 0.5)
C. Use np.floor(arr + 0.5)
D. Use np.round(arr, decimals=0)

Solution

  1. Step 1: Understand rounding .5 up behavior

    Standard np.round() rounds .5 to nearest even integer, not always up.
  2. 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.
  3. 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.
  4. Final Answer:

    Use np.floor(arr + 0.5) -> Option C
  5. Quick 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