C W wrote: > This is a follow up. I actually ran into this today: > > import numpy as np > xArray = np.ones((3, 4)) > >> xArray.shape > (3, 4) >> np.shape(xArray) > (3, 4) > > It was confusing to see that both xArray.shape and np.shape() worked. Are > they equivalent?
>>> print(inspect.getsource(numpy.shape)) def shape(a): """ Return the shape of an array. Parameters ---------- a : array_like Input array. Returns ------- shape : tuple of ints The elements of the shape tuple give the lengths of the corresponding array dimensions. See Also -------- alen ndarray.shape : Equivalent array method. Examples -------- >>> np.shape(np.eye(3)) (3, 3) >>> np.shape([[1, 2]]) (1, 2) >>> np.shape([0]) (1,) >>> np.shape(0) () >>> a = np.array([(1, 2), (3, 4)], dtype=[('x', 'i4'), ('y', 'i4')]) >>> np.shape(a) (2,) >>> a.shape (2,) """ try: result = a.shape except AttributeError: result = asarray(a).shape return result So no; numpy.shape() tries to convert unshapely objects to an array ;) _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor