[Numpy-discussion] please comment on scalar types

Sebastian Haase haase at msg.ucsf.edu
Mon Aug 14 21:40:49 CDT 2006


Travis Oliphant wrote:
> Sebastian Haase wrote:
>> Hi!
>> I have a record array with a field 'mode'
>> Mode is a small integer that I use to choose a "PixelType"
>> So I did:
>>   
>>>>> print PixelTypes[ mode ]
>>>>>         
>> TypeError: tuple indices must be integers
>>   
>>>>> pdb.pm()
>>>>>         
>>> /home/haase/PrLinN64/Priithon/Mrc.py(813)MrcMode2numType()
>>>     
>> -> return PixelTypes[ mode ]
>> (Pdb) p mode
>> 1
>> (Pdb) p type(mode)
>> <type 'int32scalar'>
>> (Pdb) p isinstance(mode, int)
>> False
>>
>> Since numpy introduced special scalar types a simple statement like this 
>> doesn't work anymore !  Would it work if int32scalar was derived from int ? I 
>> actually thought it was ...
>>   
> It does sub-class from int unless you are on a system where a c-long is 
> 64-bit then int64scalar inherits from int.
> 
> On my 32-bit system:
> 
> isinstance(array([1,2,3])[0],int)  is true.
> 
> 
> 
> -Travis
I see -
yes I forgot - that test was indeed run on 64bit Linux.

And that automatically implies that there a  32bit-int cannot be used in 
place of a "normal python integer" !?
I could see wanting to use int16 or event uint8 as a tuple index.
Logically a small type would be save to use in place of a bigger one ...


- Sebastian




More information about the Numpy-discussion mailing list