On Fri, Oct 5, 2012 at 5:17 PM, Dan Goodman <[email protected]> wrote:
> Hi, > > numpy.set_printoptions(precision=...) doesn't affect single floats, even > if they are numpy floats rather than Python floats. Is this a bug or is > there some reason for this behaviour? I ask because I have a class that > derives from numpy.float64 and adds some extra information, and I'd like > to be able to control the precision. I could fix it to use the precision > set by numpy.set_printoptions, but then it would be inconsistent with > how numpy itself handles precision. Thoughts? > Do you mean scalars or arrays? For me set_printoptions only affects arrays and not scalars. Both float32 and float64 arrays work as advertised: In [28]: np.set_printoptions(precision=4) In [29]: np.array([np.float32(1.234567891011011101111012345679)]) Out[29]: array([ 1.2346], dtype=float32) In [30]: np.array([np.float64(1.234567891011011101111012345679)]) Out[30]: array([ 1.2346]) In [31]: np.set_printoptions(precision=8) In [32]: np.array([np.float32(1.234567891011011101111012345679)]) Out[32]: array([ 1.23456788], dtype=float32) In [33]: np.array([np.float64(1.234567891011011101111012345679)]) Out[33]: array([ 1.23456789]) But for scalars it doesn't work: In [34]: np.float32(1.234567891011011101111012345679) Out[34]: 1.2345679 In [35]: np.float64(1.234567891011011101111012345679) Out[35]: 1.2345678910110112 In [36]: np.set_printoptions(precision=4) In [37]: np.float32(1.234567891011011101111012345679) Out[37]: 1.2345679 In [38]: np.float64(1.234567891011011101111012345679) Out[38]: 1.2345678910110112 Ralf
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
