[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