Bird
Raised Fist0
NumPydata~10 mins

Percentiles with np.percentile() in NumPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Percentiles with np.percentile()
Start with data array
↓
Choose percentile value p
↓
Sort data in ascending order
↓
Calculate rank index for p
↓
Interpolate if needed
↓
Return value at percentile p
The process takes a data array and a percentile value, sorts the data, finds the position for that percentile, interpolates if needed, and returns the percentile value.
Execution Sample
NumPy
import numpy as np

data = np.array([10, 20, 30, 40, 50])
result = np.percentile(data, 40)
print(result)
Calculate the 40th percentile of a simple numeric array.
Execution Table
StepActionData StateCalculationResult
1Start with data array[10, 20, 30, 40, 50]N/AN/A
2Choose percentile pp = 40N/AN/A
3Sort data[10, 20, 30, 40, 50]Already sortedN/A
4Calculate rank indexn=5rank = (p/100)*(n-1) = 0.4*4 = 1.6rank=1.6
5Interpolate between index 1 and 2values at 1=20, 2=3020 + 0.6*(30-20) = 20 + 6 = 2626.0
6Return percentile valueN/AN/A26.0
💡 Percentile value 26.0 returned after interpolation at rank 1.6
Variable Tracker
VariableStartAfter Step 4After Step 5Final
data[10, 20, 30, 40, 50][10, 20, 30, 40, 50][10, 20, 30, 40, 50][10, 20, 30, 40, 50]
pN/A404040
nN/A555
rankN/A1.61.61.6
resultN/AN/A26.026.0
Key Moments - 2 Insights
Why do we interpolate between two data points for percentile 40?
Because the rank 1.6 is not an integer index, np.percentile interpolates between the values at index 1 and 2 (20 and 30) to find the exact percentile value, as shown in execution_table step 5.
Why is the data sorted before calculating the percentile?
Percentiles depend on the order of data. Sorting ensures we can find the correct position for the percentile, as shown in execution_table step 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the rank calculated for the 40th percentile?
A1.6
B2.0
C0.4
D4.0
💡 Hint
Check the 'Calculate rank index' row in the execution_table.
At which step does interpolation happen in the execution table?
AStep 3
BStep 5
CStep 4
DStep 6
💡 Hint
Look for the step mentioning 'Interpolate' in the Action column.
If the percentile p was 50, what would be the rank index?
A3.0
B2.5
C2.0
D1.5
💡 Hint
Use the formula rank = (p/100)*(n-1) with n=5 and p=50.
Concept Snapshot
np.percentile(data, p) computes the p-th percentile of data.
Data is sorted first.
Rank index = (p/100)*(n-1).
If rank is not integer, interpolate between neighbors.
Returns the value at percentile p.
Full Transcript
This visual execution shows how np.percentile calculates the 40th percentile of a data array. First, the data is sorted. Then the rank index is calculated using the formula (p/100)*(n-1), where n is the number of data points. For p=40 and n=5, rank is 1.6. Since 1.6 is not an integer, interpolation happens between the values at index 1 and 2, which are 20 and 30. The interpolated value is 26.0, which is returned as the 40th percentile. Variables like data, p, n, rank, and result change as the steps progress. Key moments include understanding why sorting and interpolation are needed. The quizzes test understanding of rank calculation, interpolation step, and rank for a different percentile.

Practice

(1/5)
1. What does the function np.percentile() calculate in a dataset?
easy
A. The value below which a given percentage of data falls
B. The average value of the dataset
C. The total sum of all data points
D. The number of data points in the dataset

Solution

  1. Step 1: Understand percentile meaning

    A percentile indicates the value below which a certain percentage of data lies.
  2. Step 2: Connect to np.percentile()

    The function np.percentile() returns this value for the given percentage.
  3. Final Answer:

    The value below which a given percentage of data falls -> Option A
  4. Quick Check:

    Percentile = value below % data [OK]
Hint: Percentile = cutoff value for given percent [OK]
Common Mistakes:
  • Confusing percentile with mean or sum
  • Thinking percentile counts data points
  • Mixing percentile with total dataset size
2. Which of the following is the correct syntax to find the 25th percentile of a numpy array data?
easy
A. np.percentile(25, data)
B. np.percentile(data, 25)
C. np.percentile(data, percentile=25)
D. np.percentile(25%)

Solution

  1. Step 1: Recall np.percentile() parameters

    The first argument is the data array, the second is the percentile number.
  2. Step 2: Check each option

    np.percentile(data, 25) correctly uses np.percentile(data, 25). Others have wrong argument order or syntax.
  3. Final Answer:

    np.percentile(data, 25) -> Option B
  4. Quick Check:

    np.percentile(array, percentile) [OK]
Hint: First argument data, second percentile number [OK]
Common Mistakes:
  • Swapping arguments order
  • Using keyword 'percentile' incorrectly
  • Adding % sign inside function
3. Given the array arr = np.array([10, 20, 30, 40, 50]), what is the output of np.percentile(arr, 40)?
medium
A. 20.0
B. 30.0
C. 26.0
D. 40.0

Solution

  1. Step 1: Understand percentile calculation

    40th percentile means value below which 40% of data lies. Data sorted: [10,20,30,40,50]
  2. Step 2: Calculate 40th percentile

    Position = (40/100)*(5-1) = 1.6. Interpolate between arr[1]=20 and arr[2]=30: 20 + 0.6*(30-20) = 26.0
  3. Final Answer:

    26.0 -> Option C
  4. Quick Check:

    40th percentile = 26.0 [OK]
Hint: Percentile index = p/100*(n-1), interpolate if needed [OK]
Common Mistakes:
  • Picking nearest data point without interpolation
  • Using wrong index calculation
  • Confusing percentile with quartile
4. What is wrong with this code snippet to find the 90th percentile of data?
np.percentile(data, percentile=90)
medium
A. The data array must be sorted before calling np.percentile()
B. The percentile value must be between 0 and 1, not 90
C. The function should be called as data.percentile(90)
D. The keyword argument 'percentile' is invalid; percentile should be positional

Solution

  1. Step 1: Check np.percentile() argument rules

    The function expects the percentile as the second positional argument, not as a keyword 'percentile'.
  2. Step 2: Validate other options

    Percentile can be 90 (not 0.9), function is not a method of array, and sorting is handled internally.
  3. Final Answer:

    The keyword argument 'percentile' is invalid; percentile should be positional -> Option D
  4. Quick Check:

    Percentile argument is positional [OK]
Hint: Percentile must be second positional argument [OK]
Common Mistakes:
  • Using invalid keyword argument
  • Assuming percentile is fraction (0-1)
  • Trying to sort data manually
5. You have a dataset data = np.array([5, 7, 8, 12, 15, 18, 22, 27, 30]). You want to find the value below which 75% of the data falls and then filter the dataset to only include values below this percentile. Which code correctly does this?
hard
A. threshold = np.percentile(data, 75) filtered = data[data <= threshold]
B. threshold = np.percentile(data, 0.75) filtered = data[data <= threshold]
C. threshold = np.percentile(data, 75) filtered = data[data < threshold]
D. threshold = np.percentile(data, 75) filtered = data[data > threshold]

Solution

  1. Step 1: Calculate 75th percentile threshold

    Use np.percentile(data, 75) to get the value below which 75% data lies.
  2. Step 2: Filter data including values equal to threshold

    Use <= to include values equal to threshold, so filtered = data[data <= threshold].
  3. Final Answer:

    threshold = np.percentile(data, 75) filtered = data[data <= threshold] -> Option A
  4. Quick Check:

    Percentile 75 + filter <= threshold [OK]
Hint: Use percentile value and filter with <= threshold [OK]
Common Mistakes:
  • Using 0.75 instead of 75 for percentile
  • Filtering with < instead of <=
  • Filtering with > instead of <= or <
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard