[Numpy-discussion] Community Poll: numarray default underflow handling == "ignore" ?
Alexander Schmolck
a.schmolck at gmx.net
Fri Nov 21 16:38:02 EST 2003
"Sebastian Haase" <haase at msg.ucsf.edu> writes:
> My vote would be '-1' ( if that means "I prefer ignore")
> I'm thinking of an INTERACTIVE platform - and so it would just "look nicer"
> without to many warnings.
Well, it's only a default so you could always deactivate it (for all
interactive sessions in your PYTHONSTARTUP if you wanted).
>
> Actually on that note: I read some time ago about pythons default for
> printing floats:
> >>> 0.1
> 0.10000000000000001
> >>> print 0.1
> 0.1
> >>> repr(0.1)
> '0.10000000000000001'
> >>> str(.1)
> '0.1'
>
> Does anyone here have an update on that ?
> What I am especially interested in is when I have a list of (floating point)
> (x,y) positions and
> then typing in the var-name and getting all these ugly numbers is still very
> frustration for me ;-)
You can customize python's interactive printing behavior any way you like (in
your PYTHONSTARTUP). Here is an example from my old ~/.pythonrc.py (nowadays I
almost exclusively use ipython).
import pprint
PRETTY_PRINT=1
_normal_displayhook = sys.displayhook
def _my_displayhook(object):
if PRETTY_PRINT:
# don't bore us with None
if object is not None:
pprint.pprint(object)
else:
_normal_displayhook(object)
sys.displayhook = _my_displayhook
You could add something to the above to achieve the floating point (or list)
formating you desire (``if type(object) is float:...).
Since I am a heavy interactive user and found the default floating formating
of arrays somewhat clumsy for interactive work, I also wrote some more
fanciful formatting code for my Numeric/numarray compatible matrix class that
amongst other things offers a number of formating options, including matlab
style. I found that this made my life much easier.
Thus:
>>> a
array([[-9.90000000e+01, -9.72817182e+01, 0.00000000e+00, -7.99144631e+01],
[-4.54018500e+01, 4.84131591e+01, 3.03428793e+02, 9.96633158e+02],
[2.88095799e+03, 8.00308393e+03, 2.19264658e+04, 5.97741417e+04]])
>>> m = matrix(a)
>>> m
matrix('''
1.0E+04 *
-0.00990 -0.00973 0.00000 -0.00799
-0.00454 0.00484 0.03034 0.09966
0.28810 0.80031 2.19265 5.97741
''')
>>> m.show('long')
matrix('''
1.0E+04 *
Columns 0 through 3
-0.009900000000000 -0.009728171817154 0.000000000000000
-0.004540184996686 0.004841315910258 0.030342879349274
0.288095798704173 0.800308392757538 2.192646579480672
Columns 3 through 4
-0.007991446307681
0.099663315842846
5.977414171519782
''')
>>> m.show('+')
m.show('+')
matrix('''
-- -
-+++
++++
''')
etc.
Adapting this to e.g. format Numeric arrays similarly via the display hook
shouldn't be too hard, I can provide the code if you're interested.
'as
More information about the NumPy-Discussion
mailing list