[SciPy-dev] array dtypechar wrong or not

Travis Oliphant oliphant at ee.byu.edu
Tue Oct 25 14:05:51 CDT 2005

Pearu Peterson wrote:

>Note that
>In [142]: array(array([1,2],dtype='I'),dtype='L').dtypechar
>Out[142]: 'I'
>In [143]: array(array([1,2],dtype='L'),dtype='I').dtypechar
>Out[143]: 'L'
>I have expected 'L' and 'I', respectively. It this a bug?
It's not really a bug,  Basically, on your platform 'I' and 'L' are 
equivalent types, and so conversion is not done.   I suppose that the 
typenumber could change, though,  instead of doing nothing. 

Basically, it's the code in array_fromarray.  Because 'I' and 'L' are 
equivalent types on your platform, only an INCREF is done.   If we 
change the typecode as well as INCREF, then the original array would be 
changed, which might be surprising as well:

a = array([1,2],dtype='I')

b = array(a,dtype='L')

b will point to a.  If we change b to have typecode 'L', then a will 
also change.  This would be surprising, I think.

So, I guess, I don't think we should change the behavior.


More information about the Scipy-dev mailing list