The shape property is usually used to get the current shape of an array, but may also be used to reshape the array in-place by assigning a tuple of array dimensions to it. As with numpy.reshape, one of the new shape dimensions can be -1, in which case its value is inferred from the size of the array and the remaining dimensions. Reshaping an array in-place will fail if a copy is required.
Warning: Setting arr.shape is discouraged and may be deprecated in the future. Using ndarray.reshape is the preferred approach.
See also:
numpy.shape
Equivalent getter function.
numpy.reshape
Function similar to setting shape.
ndarray.reshape
Method similar to setting shape.
Examples:
>>> import numpy as np>>> x = np.array([1, 2, 3, 4])>>> x.shape(4,)>>> y = np.zeros((2, 3, 4))>>> y.shape(2, 3, 4)>>> y.shape = (3, 8)>>> yarray([[ 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0.]])>>> y.shape = (3, 6)Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: cannot reshape array of size 24 into shape (3,6)>>> np.zeros((4,2))[::2].shape = (-1,)Traceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: Incompatible shape for in-place modification. Use`.reshape()` to make a copy with the desired shape.