On Wed, Sep 15, 2010 at 1:34 PM, Benjamin Root <ben.root@ou.edu> wrote:
Hello,

I am trying to solve a problem in matplotlib where I would have an array of floating point numbers and I want to quickly determine what is the closest common offset to a power of 10.  In other words, if given:

[12373.43, 12375.89, 12370.18],

I would want returned something like either 12370.0, or the lowest common order of magnitude (in this case, 10).

Is there some sort of neat math/numpy trick to figure this out?  I already have a brute-force method with a while loop, but I am looking for something a little bit more elegant.


Something along the lines of

In [14]: ceil(log10(a.max() - a.min()))
Out[14]: 1.0

? I think this approach can be fixed up for whatever it is. I wasn't clear on that.

Chuck