I see a lot of questions like this one for R, but I couldn't find one specifically for Python, preferably using numpy.
Let's say I have an array of observations stored in x
. I can get the value that accumulates q * 100
per cent of the population.
# Import numpy
import numpy as np
# Get 75th percentile
np.quantile(a=x, q=0.75)
However, I was wondering if there's a function that does the inverse. That is, a numpy function that takes a value as an input and returns q
.
To further expand on this, scipy distribution objects have a ppf
method that allows me to do this. I'm looking for something similar in numpy. Does it exist?
Not a ready-made function but a compact and reasonably fast snippet:
(a<value).mean()
You can (at least on my machine) squeeze out a few percent better performance by using np.count_nonzero
np.count_nonzero(a<value) / a.size
but tbh I wouldn't even bother.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With