I never noticed this kind of cast before (1.8.0), it's just a bit surprising. It was convenient to write translations (for a bunch of points) such as: Z = np.ones((n,2),dtype=np.float32) + (300,300) but I can live with Z += 300,300 Nicolas On 03 Mar 2014, at 23:02, Benjamin Root <ben.root@ou.edu> wrote:
IIRC, this is dependent on whether you are using 32bit versus 64bit numpy. All regular integer numbers can fit in 32 bits (is that right?), but the 1.1 is treated as a float32 if on a 32 bit NumPy or as float64 if on a 64 bit NumPy.
That's my stab at it.
Ben Root
On Mon, Mar 3, 2014 at 4:06 PM, Nicolas Rougier <Nicolas.Rougier@inria.fr> wrote:
Hi all,
I'm using numpy 1.8.0 (osx 10.9, python 2.7.6) and I can't understand dtype promotion in the following case:
Z = np.zeros((2,2),dtype=np.float32) + 1 print Z.dtype float32
Z = np.zeros((2,2),dtype=np.float32) + (1,1) print Z.dtype float64
Is this the expected behavior ? What it the difference between the two lines ?
Nicolas _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion