--On Tue, Jun 3, 2014 at 12:00 AM, Juan Nunez-Iglesias <jni.soma@gmail.com> wrote:
Hi All,This is more suited for a numpy list but thought I'd try the home crowd first. Does anyone know how numpy decides to print arrays? It is a pain getting doctests to pass without knowing the system. Example:In [15]: lifio.parse_series_name(name2)[1][:5]Out[15]: array([ 63. , 63.5, 64. , 64.5, 65. ])In [16]: lifio.parse_series_name(name2, 1)[1][:5]Out[16]: array([ 63., 64., 65., 66., 67.])Note:It goes 63.<space>,<space-space>63.5,<space-space>64.<space> etc. Note also the space after the opening brace but not the closing brace. Basically, you can't go by PEP8, so it's a pain predicting what the actual printout is going to be. I get the space after the . so that the .5's will align, but what about the leading spaces?Juan.Part of what you're looking for is set by `np.set_printoptions`. For example, you can write something likeIn [31]: np.set_printoptions(formatter={'all': lambda x: '|{}'.format(x)}, precision=3)In [32]: aOut[32]:array([|10.0, |10.5, |11.0, |11.5, |12.0, |12.5, |13.0, |13.5, |14.0,|14.5, |15.0, |15.5, |16.0, |16.5, |17.0, |17.5, |18.0, |18.5,|19.0, |19.5, |20.0])In [33]: print a[|10.0 |10.5 |11.0 |11.5 |12.0 |12.5 |13.0 |13.5 |14.0 |14.5 |15.0 |15.5|16.0 |16.5 |17.0 |17.5 |18.0 |18.5 |19.0 |19.5 |20.0]Note that `repr` adds commas after values (and the `array(` prefix), while `str` doesn't. There's some magic in the default formatter that I haven't dug into. Somehow, it's able to read all the values beforehand so that it can determine the maximum width needed to align values. So for example, you might write thisIn [38]: a = np.array([1, 10, 100, 1000])and get this as outputIn [39]: print a[|1 |10 |100 |1000]But what you really wanted was thisIn [40]: np.set_printoptions(formatter={'all': lambda x: '|{:4}'.format(x)}, precision=3)In [41]: print a[| 1 | 10 | 100 |1000]Ideally that `{:4}` could be determined after looking at the entire array. That part is a bit of a mystery to me.
You received this message because you are subscribed to the Google Groups "scikit-image" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scikit-image+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.