'The shape of the instance and underlying arrays.
Like `~numpy.ndarray.shape`, can be set to a new shape by assigning a
tuple.  Note that if different instances share some but not all
underlying data, setting the shape of one instance can make the other
instance unusable.  Hence, it is strongly recommended to get new,
reshaped instances with the ``reshape`` method.
Raises
AttributeError
If the shape of any of the components cannot be changed without the
arrays being copied.  For these cases, use the ``reshape`` method
(which copies any arrays that cannot be reshaped in-place).'

@property
def shape(self):

    return getattr(self, self.components[0]).shape
