[Numpy-discussion] type checking, what's recommended?
josef.pktd at gmail.com
josef.pktd at gmail.com
Wed Dec 7 20:58:14 EST 2011
If I want to know whether something that might be an array is really a
plain ndarray and not a subclass, is using `type` the safest bet?
All the other forms don't discriminate against subclasses.
>>> type(np.ma.zeros(3)) is np.ndarray
False
>>> type(np.zeros(3)) is np.ndarray
True
>>> isinstance(np.ma.zeros(3), np.ndarray)
True
>>> isinstance(np.zeros(3), np.ndarray)
True
>>> issubclass(np.ma.zeros(3).__class__, np.ndarray)
True
>>> issubclass(np.zeros(3).__class__, np.ndarray)
True
>>> isinstance(np.matrix(np.zeros(3)), np.ndarray)
True
>>> type(np.matrix(np.zeros(3))) is np.ndarray
False
Thanks,
Josef
More information about the NumPy-Discussion
mailing list