[SciPy-user] Print number of significant digits ?
Nils Wagner
nwagner at iam.uni-stuttgart.de
Fri Jun 15 06:39:04 EDT 2007
Steve Schmerler wrote:
> Stef Mientki wrote:
>
>> Joachim Dahl wrote:
>>
>>> print "%3.2f" %pi
>>>
>> thanks Joachim,
>>
>> but I didn't phrase my question accurate enough,
>> I not only want to print pi, but I want to print anything
>>
>> e.g. I now get:
>> Model 1.0000000149 1.0 [ 1.00000001 1.00000001 3.00000001
>> 4.00000001 5.00000001]
>>
>> but I want
>> Model 1.00 1.0 [ 1.00 1.00 3.00 4.00 5.00]
>>
>> and as I use "print" as a quick and dirty intermediate result for
>> everything,
>> I don't want to spell out each format statement.
>>
>>
>
> Hmm I'm not aware of a built-in for doing this. A quick and dirty solution would be
>
> a = array([1,2,3,pi])
> fmt = "%3.2f "*len(a)
> fmt = fmt.strip()
>
> Then,
>
> In [28]: a
> Out[28]: array([ 1. , 2. , 3. , 3.14159265])
>
> In [29]: fmt %tuple([aa for aa in a])
> Out[29]: '1.00 2.00 3.00 3.14'
>
>
>
You can use set_printoptions
set_printoptions(precision=None, threshold=None, edgeitems=None,
linewidth=None, suppress=None)
Set options associated with printing.
:Parameters:
precision : int
Number of digits of precision for floating point output
(default 8).
threshold : int
Total number of array elements which trigger summarization
rather than full repr (default 1000).
edgeitems : int
Number of array items in summary at beginning and end of
each dimension (default 3).
linewidth : int
The number of characters per line for the purpose of inserting
line breaks (default 75).
suppress : bool
Whether or not suppress printing of small floating point values
using scientific notation (default False).
>>> from scipy import *
>>> set_printoptions(precision=2)
>>> print pi
3.14159265359
>>> print array([pi])
[ 3.14]
Nils
More information about the SciPy-User
mailing list