# NumPy reshape()

The `reshape()` method changes the shape of a NumPy array without changing its data.

### Example

``````import numpy as np

# create an array
originalArray = np.array([0, 1, 2, 3, 4, 5, 6, 7])

# reshape the array
reshapedArray = np.reshape(originalArray, (2, 4))

print(reshapedArray)

'''
Output

[[0 1 2 3]
[4 5 6 7]]
'''``````

## reshape() Syntax

The syntax of `reshape()` is:

``numpy.reshape(array, shape, order)``

## reshape() Arguments

The `reshape()` method takes three arguments:

• `array` - an original array that is to be reshaped
• `shape` - desired new shape of the array (can be integer or tuple of integers)
• `order` (optional) - specifies the order in which the array elements are reshaped.

## reshape() Return Value

The `reshape()` method returns the reshaped array.

Note: The `reshape()` method throws an error if the shape doesn't match the number of elements.

## Example 1: Reshape 1D Array to 3D Array

``````import numpy as np

# create an array
originalArray = np.array([0, 1, 2, 3, 4, 5, 6, 7])

# reshape the array to 3D
reshapedArray = np.reshape(originalArray, (2, 2, 2))

print(reshapedArray)``````

Output

```[[[0 1]
[2 3]]

[[4 5]
[6 7]]]```

## Using Optional Order Argument in reshape()

The `order` argument specifies the order in which the array elements are reshaped.

The order can be:

• `'C'` - elements are stored row-wise
• `'F'` - elements are stored column-wise
• `'A'` - elements are stored based on the original array's memory layout.

### Example 2: Reshape Array Row-Wise

``````import numpy as np

originalArray = np.array([0, 1, 2, 3, 4, 5, 6, 7])

# reshape the array to 2D
# the last argument 'C' reshapes the array row-wise
reshapedArray = np.reshape(originalArray, (2, 4), 'C')

print(reshapedArray)``````

Output

```[[0 1 2 3]
[4 5 6 7]]```

### Example 3: Reshape Array Column-Wise

``````import numpy as np

originalArray = np.array([0, 1, 2, 3, 4, 5, 6, 7])

# reshape the array to 2D
# the last argument 'F' reshapes the array column-wise
reshapedArray = np.reshape(originalArray, (2, 4), 'F')

print(reshapedArray)``````

Output

```[[0 2 4 6]
[1 3 5 7]]```

## Example 4: Flatten a Multidimensional Array to 1D Array

In our previous examples, we used tuples as the `shape` argument (second argument), which determines the shape of the new array.

However, if we use -1 as a `shape` argument, the `reshape()` method reshapes the original array into a one-dimensional array.

``````import numpy as np

originalArray = np.array([[0, 1, 2, 3], [4, 5, 6, 7]])

# flatten the array
# to flatten the array, -1 is used as the second argument
reshapedArray = np.reshape(originalArray, -1)

print(reshapedArray)``````

Output

`[0 1 2 3 4 5 6 7]`