Matthew Brett wrote: >Hi, > >I was a bit confused by this on 32 bit linux: > >In [30]:sctypes['int'] >Out[30]: >[<type 'numpy.int8'>, > <type 'numpy.int16'>, > <type 'numpy.int32'>, > <type 'numpy.int64'>, > <type 'numpy.int32'>] > >Is it easy to explain the two entries for int32 here? I notice there >is only one int32 entry for the same test on my 64 bit system. > > > The mapping from c-types to bit-width types is not one-to-one. All of the c-types have their own array-scalar. Some of these have the same bit-width and thus are named similarly.
numpy.int32 refers to exactly one of these c-types, but on some systems (e.g. 32-bit), there will be another array scalar that also shows up with the name numpy.int32 The easiest way to see them all is to observe id(dtype('byte').type) id(dtype('short').type) id(dtype('intc').type) id(dtype('int').type) id(dtype('longlong').type) But then compare: dtype('byte').type dtype('short').type dtype('intc').type dtype('int').type dtype('longlong').type dtype('intp').type will be one of the above as can be verified by looking at id(dtype('intp').type) The sctypes['int'] list is a list of all the c-type ints. Thus, you could generate the id's of the first 5 typeobjects using: [id(x) for x in sctypes['int']] -Travis _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion