# ENH: ratio function to mimic diff

5 messages
Open this post in threaded view
|
Report Content as Inappropriate

## ENH: ratio function to mimic diff

 I have created PR#9481 to introduce a `ratio` function that behaves very similarly to `diff`, except that it divides successive elements instead of subtracting them. It has some handling built in for zero division, as well as the ability to select between `/` and `//` operators.There is currently no masked version. Perhaps someone could suggest a simple mechanism for hooking np.ma.true_divide and np.ma.floor_divide in as the operators instead of the regular np.* versions.Please let me know your thoughts.Regards,    -Joe _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion
Open this post in threaded view
|
Report Content as Inappropriate

## Re: ENH: ratio function to mimic diff

 This is an interesting idea, but I don't understand the use cases for this function. In particular, what would you use n-th order ratios for?One use case I can think of is estimating the slope of a log-scaled plot. But here exp(diff(log(x))) is an easy substitute.I guess ratio() would work in cases where values are both positive and negative, but again I don't know when that would be useful. If your signal crosses zero, ratios are likely to diverge.On Fri, Jul 28, 2017 at 3:25 PM Joseph Fox-Rabinovitz <[hidden email]> wrote:I have created PR#9481 to introduce a `ratio` function that behaves very similarly to `diff`, except that it divides successive elements instead of subtracting them. It has some handling built in for zero division, as well as the ability to select between `/` and `//` operators.There is currently no masked version. Perhaps someone could suggest a simple mechanism for hooking np.ma.true_divide and np.ma.floor_divide in as the operators instead of the regular np.* versions.Please let me know your thoughts.Regards,    -Joe _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion
Open this post in threaded view
|
Report Content as Inappropriate

## Re: ENH: ratio function to mimic diff

 In reply to this post by Joseph Fox-Rabinovitz I'd also like to see a more detailed motivation for this.And, if it is useful, then that would make 3 operations that have special case pairwise moving window variants (subtract, floor_divide, true_divide). 3 is a lot of special cases. Should there instead be a generic mechanism for doing this for arbitrary binary operations?-nOn Jul 28, 2017 3:25 PM, "Joseph Fox-Rabinovitz" <[hidden email]> wrote:I have created PR#9481 to introduce a `ratio` function that behaves very similarly to `diff`, except that it divides successive elements instead of subtracting them. It has some handling built in for zero division, as well as the ability to select between `/` and `//` operators.There is currently no masked version. Perhaps someone could suggest a simple mechanism for hooking np.ma.true_divide and np.ma.floor_divide in as the operators instead of the regular np.* versions.Please let me know your thoughts.Regards,    -Joe _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion
Open this post in threaded view
|
Report Content as Inappropriate

## Re: ENH: ratio function to mimic diff

 In reply to this post by Stephan Hoyer-2 On Jul 29, 2017 12:23, "Stephan Hoyer" <[hidden email]> wrote:This is an interesting idea, but I don't understand the use cases for this function. In particular, what would you use n-th order ratios for?There is no good use case for the nth order differences that I am aware of. I just added that to mimic the way diff works.One use case I can think of is estimating the slope of a log-scaled plot. But here exp(diff(log(x))) is an easy substitute.My original motivation was very similar to that. I was looking for the largest geometric gap in a sorted sequence of numbers. Taking logs and exponents seemed like a sledge hammer for that task.I guess ratio() would work in cases where values are both positive and negative, but again I don't know when that would be useful. If your signal crosses zero, ratios are likely to diverge.They would, but looking for sign changes is easy, and I added an argument to flag actual zeros.On Fri, Jul 28, 2017 at 3:25 PM Joseph Fox-Rabinovitz <[hidden email]> wrote:I have created PR#9481 to introduce a `ratio` function that behaves very similarly to `diff`, except that it divides successive elements instead of subtracting them. It has some handling built in for zero division, as well as the ability to select between `/` and `//` operators.There is currently no masked version. Perhaps someone could suggest a simple mechanism for hooking np.ma.true_divide and np.ma.floor_divide in as the operators instead of the regular np.* versions.Please let me know your thoughts.Regards,    -Joe _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.python.org/mailman/listinfo/numpy-discussion