[Numpy-discussion] floats coerced to string with "{:f}".format() ?
Maccarthy, Jonathan K
jkmacc at lanl.gov
Thu Jun 6 16:50:42 EDT 2013
I'm really showing my ignorance now, I think; so, the old-style "fmt % (tuple)" must use a different mechanism, and perhaps that's why np.savetxt never choked on a float32 for me before (yes, I am on a 64-bit system).
In [8]: type(tmp.lat)
Out[8]: numpy.float32
In [9]: '%6s %8i %11.6f' % (tmp.sta, tmp.ondate, tmp.lat)
Out[9]: ' XYZZ 2001123 -23.820000'
Thanks again for your patience.
On Jun 6, 2013, at 2:26 PM, Robert Kern wrote:
>
> np.float64 works because it inherits from the Python float type
> (Python floats are 64-bit floats). np.float32 doesn't inherit from the
> Python float type because it can't; they don't represent the same kind
> of data, so their memory layouts at the C level cannot coincide. Since
> you are on a 64-bit platform, np.int64 represents the same kind of
> integer as the Python int type, so it can subclass, but an np.int32
> couldn't.
>
> It's not necessarily intuitive, but it's the best we can do under the
> constraints. The only thing more intuitive would be to disallow
> subclassing from the Python builtin types entirely, but that's
> *really* annoying.
>
> --
> Robert Kern
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
More information about the NumPy-Discussion
mailing list