Why doesn't array(a, dtype=single, copy=0) downcast a double array.

Travis Oliphant oliphant at ee.byu.edu
Tue Oct 17 12:13:26 CDT 2006

Travis Oliphant wrote:

>Charles R Harris wrote:
>>It seems to me that since the behaviour when copy=0 is to make a copy 
>>only if necessary, it should find it necessary and make the downcast. 
>>After all, array(a, dtype=single, copy=1) does just that without 
>>complaint. Some common code in linalg could be replaced if array and 
>>asarray would do that operation.
>Well, the fact that it makes the copy without raising an error is 
>different behavior from Numeric and should be considered an unintended 
>We definitely should make this consistent for copy=0 or copy=1.  The 
>only question, is do we raise the error in both cases or allow the 
>conversion in both cases.
>The long-standing behavior is to raise the error on possible-loss 
>conversion and so my opinion is that we should continue with that behavior.
But, on the other hand, it looks like numarray went the other direction 
and allows a cast using the array call.


import numarray
a = numarray.array([1,2,3],'d')
numarray.array(a, 'f')


So, I'm willing to go with the numarray behavior in numpy.


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo

More information about the Numpy-discussion mailing list