pythonnumpyweightedpercentile

Weighted percentile using numpy


Is there a way to use the numpy.percentile function to compute weighted percentile? Or is anyone aware of an alternative python function to compute weighted percentile?


Solution

  • Unfortunately, numpy doesn't have built-in weighted functions for everything, but, you can always put something together.

    def weight_array(ar, weights):
         zipped = zip(ar, weights)
         weighted = []
         for a, w in zipped:
             for j in range(w):
                 weighted.append(a)
         return weighted
    
    
    np.percentile(weight_array(ar, weights), 25)