[Numpy-discussion] Different attributes for NumPy types
Bruce Southey
bsouthey@gmail....
Thu May 22 10:10:12 CDT 2008
Hi,
Is it bug if different NumPy types have different attributes?
Based on prior discussion, 'complex', 'float' and 'int' are Python types
and others are NumPy types. Consequently 'complex', 'float' and 'int'
do not inherit from NumPy. However, an element from array created using
dtype=numpy.float has the numpy.float64 type. So this is really a
documentation issue than an implementation issue.
Also different NumPy types have different attributes, for example,
'float64' contains attributes (eg __coerce__) that are not present in
'float32' and 'float128' (these two have the same attributes). This can
cause attribute errors in somewhat contrived examples that probably are
unlikely to appear in practice because of the casting involved in array
creation.
The 'uint' types all seem to have the same attributes so do not have
these issues.
import numpy
len(dir(float)) # 47
len(dir(numpy.float)) # 47
len(dir(numpy.float32)) # 131
len(dir(numpy.float64)) # 135
len(dir(numpy.float128)) # 131
len(dir(int)) # 54
len(dir(numpy.int)) # 54
len(dir(numpy.int0)) # 135
len(dir(numpy.int16)) # 132
len(dir(numpy.int32)) # 132
len(dir(numpy.int64)) # 135
len(dir(numpy.int8)) # 132
print (numpy.float64(1234).size) # 1
print (numpy.float(1234).size)
''' prints error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'float' object has no attribute 'size'
'''
Regards
Bruce
More information about the Numpy-discussion
mailing list