I will go over your PR carefully to make sure we can agree on a matching API. After that, we can swap the backend out whenever I get around to it.
Thanks for working on this. -Joe On Thu, Aug 3, 2017 at 5:36 PM, Chun-Wei Yuan <chunwei.y...@gmail.com> wrote: > Cool. Just as a heads up, for my algorithm to work, I actually need the > indices, which is why argsort() is so important to me. I use it to get both > ap_sorted and ws_sorted variables. If your weighted-quantile algo is faster > and doesn't require those indices, please by all means change my > implementation. Thanks. > > On Thu, Aug 3, 2017 at 11:10 AM, Joseph Fox-Rabinovitz > <jfoxrabinov...@gmail.com> wrote: >> >> Not that I know of. The algorithm is very simple, requiring a >> relatively small addition to the current introselect algorithm used >> for `np.partition`. My biggest hurdle is figuring out how the calling >> machinery really works so that I can figure out which input type >> permutations I need to generate, and how to get the right backend >> running for a given function call. >> >> -Joe >> >> On Thu, Aug 3, 2017 at 1:00 PM, Chun-Wei Yuan <chunwei.y...@gmail.com> >> wrote: >> > Any way I can help expedite this? >> > >> > On Fri, Jul 21, 2017 at 4:42 PM, Chun-Wei Yuan <chunwei.y...@gmail.com> >> > wrote: >> >> >> >> That would be great. I just used np.argsort because it was familiar to >> >> me. Didn't know about the C code. >> >> >> >> On Fri, Jul 21, 2017 at 3:43 PM, Joseph Fox-Rabinovitz >> >> <jfoxrabinov...@gmail.com> wrote: >> >>> >> >>> While #9211 is a good start, it is pretty inefficient in terms of the >> >>> fact that it performs an O(nlogn) sort of the array. It is possible to >> >>> reduce the time to O(n) by using a similar partitioning algorithm to >> >>> the one >> >>> in the C code of percentile. I will look into it as soon as I can. >> >>> >> >>> -Joe >> >>> >> >>> On Fri, Jul 21, 2017 at 5:34 PM, Chun-Wei Yuan >> >>> <chunwei.y...@gmail.com> >> >>> wrote: >> >>>> >> >>>> Just to provide some context, 9213 actually spawned off of this guy: >> >>>> >> >>>> https://github.com/numpy/numpy/pull/9211 >> >>>> >> >>>> which might address the weighted inputs issue Joe brought up. >> >>>> >> >>>> C >> >>>> >> >>>> On Fri, Jul 21, 2017 at 2:21 PM, Joseph Fox-Rabinovitz >> >>>> <jfoxrabinov...@gmail.com> wrote: >> >>>>> >> >>>>> I think that there would be a very good reason to have a separate >> >>>>> function if we were to introduce weights to the inputs, similarly to >> >>>>> the way >> >>>>> that we have mean and average. This would have some (positive) >> >>>>> repercussions >> >>>>> like making weighted histograms with the Freedman-Diaconis binwidth >> >>>>> estimator a possibility. I have had this change on the back-burner >> >>>>> for a >> >>>>> long time, mainly because I was too lazy to figure out how to >> >>>>> include it in >> >>>>> the C code. However, I will take a closer look. >> >>>>> >> >>>>> Regards, >> >>>>> >> >>>>> -Joe >> >>>>> >> >>>>> >> >>>>> >> >>>>> On Fri, Jul 21, 2017 at 5:11 PM, Chun-Wei Yuan >> >>>>> <chunwei.y...@gmail.com> >> >>>>> wrote: >> >>>>>> >> >>>>>> There's an ongoing effort to introduce quantile() into numpy. >> >>>>>> You'd >> >>>>>> use it just like percentile(), but would input your q value in >> >>>>>> probability >> >>>>>> space (0.5 for 50%): >> >>>>>> >> >>>>>> https://github.com/numpy/numpy/pull/9213 >> >>>>>> >> >>>>>> Since there's a great deal of overlap between these two functions, >> >>>>>> we'd like to solicit opinions on how to move forward on this. >> >>>>>> >> >>>>>> The current thinking is to tolerate the redundancy and keep both, >> >>>>>> using one as the engine for the other. I'm partial to having >> >>>>>> quantile >> >>>>>> because 1.) I prefer probability space, and 2.) I have a PR waiting >> >>>>>> on >> >>>>>> quantile(). >> >>>>>> >> >>>>>> Best, >> >>>>>> >> >>>>>> C >> >>>>>> >> >>>>>> _______________________________________________ >> >>>>>> NumPy-Discussion mailing list >> >>>>>> NumPy-Discussion@python.org >> >>>>>> https://mail.python.org/mailman/listinfo/numpy-discussion >> >>>>>> >> >>>>> >> >>>>> >> >>>>> _______________________________________________ >> >>>>> NumPy-Discussion mailing list >> >>>>> NumPy-Discussion@python.org >> >>>>> https://mail.python.org/mailman/listinfo/numpy-discussion >> >>>>> >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> NumPy-Discussion mailing list >> >>>> NumPy-Discussion@python.org >> >>>> https://mail.python.org/mailman/listinfo/numpy-discussion >> >>>> >> >>> >> >>> >> >>> _______________________________________________ >> >>> NumPy-Discussion mailing list >> >>> NumPy-Discussion@python.org >> >>> https://mail.python.org/mailman/listinfo/numpy-discussion >> >>> >> >> >> > >> > >> > _______________________________________________ >> > NumPy-Discussion mailing list >> > NumPy-Discussion@python.org >> > https://mail.python.org/mailman/listinfo/numpy-discussion >> > >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion > > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion