# [Numpy-discussion] ENH: ratio function to mimic diff

Joseph Fox-Rabinovitz jfoxrabinovitz at gmail.com
Sat Jul 29 19:25:32 EDT 2017

```On Jul 29, 2017 12:23, "Stephan Hoyer" <shoyer at gmail.com> 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 <
jfoxrabinovitz at gmail.com> 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.
>
>
> Regards,
>
>     -Joe
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion at python.org
https://mail.python.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20170729/d4d1e750/attachment.html>
```