Skip to main content
`Ctrl`+`K`

# numpy.ndarray.shape

attribute

ndarray.shape

  Tuple of array dimensions.

  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)
      >>> y
      array([[ 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.