NumPy | quantile method
Start your free 7-days trial now!
quantile(~) method returns the interpolated value at the specified quantile. Note that this method is exactly the same as the
percentile(~), just that the
quantile(~) method takes a value between 0 and 1 - not 0 and 100.
The input array.
The desired quantile to compute, which must be between 0 (inclusive) and 1 (inclusive).
The axis along which to compute the percentile. For 2D arrays, the allowed values are as follows:
Compute the quantile column-wise
Compute the quantile row-wise
Compute the percentile on a flattened input array
Numpy array |
Instead of creating a new array, you can place the computed result into the array specified by
Whether to save intermediate calculations to the input array
a. This would save memory space, but would also make the content of
a undefined. By default,
How the values are interpolated when the given percentile sits between two data-points, say
Standard linear interpolation
q is a scalar, then a scalar is returned. Otherwise, a Numpy array is returned.
Computing a single percentile
To get the value at the 0.5 quantile:
a = np.array([5,6,7,8,9])np.quantile(a, 0.5)7.0
Computing multiple percentiles
To get the values at the 50th and 75th percentiles:
a = np.array([5,6,7,8,9])np.quantile(a, [0.5, 0.75])array([7., 8.])
Changing interpolation methods
Consider the case when the value corresponding to the specified quantile does not exist:
a = np.array([5,6,7,8,9])np.quantile(a, 0.45) # interpolation="linear"6.800000000000001
Here, since the value corresponding to the 45th percentile does not exist in the array, the value was linearly interpolated between 6 and 7.
a = np.array([5,6,7,8,9])np.quantile(a, 0.45, interpolation="lower")6
Again, since the 45% quantile does not exist, we need to perform interpolation. We know it is between the values 6 and 7. By passing in
"lower", we select the lower value, that is, 6 in this case.
a = np.array([5,6,7,8,9])np.quantile(a, 0.45, interpolation="higher")7
Same logic as
"lower", but we take the upper value.
a = np.array([5,6,7,8,9])np.quantile(a, 0.45, interpolation="nearest")7
By passing in "nearest", instead of always selecting the lower or upper value, we take whichever is nearest. Here, judging from the output from when
interpolation="linear", we know that the interpolated value is closer to 7 rather than 6.
a = np.array([5,6,7,8,9])np.quantile(a, 0.45, interpolation="midpoint")6.5
Here, we just take the midpoint of the lower and upper value, so