# NumPy Reshape 1D to 2D

Problem Formulation: Given a one-dimensional NumPy array. How to create a new two-dimensional array by reshaping the original array so that the new array has `x` rows and `y` columns?

Here’s an example of what you’re trying to do:

``````# Given:
[0 1 2 3 4 5]
x = 2 # rows
y = 3 # columns

# Desired:
[[0 1 2]
[3 4 5]]``````

Solution: NumPy’s `reshape()` function takes an array to be reshaped as a first argument and the new shape tuple as a second argument. It returns a new view on the existing data—if possible—rather than create a full copy of the original array. The returned array behaves like a new object: any change on one view won’t affect any other view.

You can reshape a 1D array into a 2D array with the following four steps:

1. Import the NumPy library with `import numpy as np`,
2. Use the function `np.reshape(...)`,
3. Pass the original 1D array as a first argument,
4. Pass the new shape tuple `(x, y)` defining `x` rows and `y` columns as a second argument.

In summary, the function call `np.reshape(original_array, (x, y))` will create a 2D array with `x` rows and `y` columns.

```import numpy as np

# Problem: Reshape this 1D into a 2D array
array_1d = np.array([0, 1, 2, 3, 4, 5])

# Solution: np.reshape(array, shape)
array_2d = np.reshape(array_1d, (2, 3))

# Check the new array
print(array_2d) ```

The output is the 2D array in its desired form:

````# Reshaped 2D Array:`
```[[0 1 2]
[3 4 5]]``````

Let’s get some practice to train your understanding of the reshaping 1D to 2D functionality!

## NumPy Puzzle Reshaping

Numpy is a popular Python library for data science focusing on linear algebra. This puzzle performs a miniature stock analysis of the Apple stock.

```import numpy as np

# apple stock prices (May 2018)
prices = [ 189, 186, 186, 188,
187, 188, 188, 186,
188, 188, 187, 186 ]
prices = np.array(prices)

data_3day = prices.reshape(4,3)

print(int(np.average(data_3day)))
print(int(np.average(data_3day[-1])))```

Exercise: What is the output of this puzzle?

You can also solve the puzzle interactively on our Finxter puzzle-based training app here:

First, we create a NumPy array from the raw price data.

Second, we create a new array `data_3day` for more convenient analysis. This array bundles the price data from three days into each row. We examine some rows in more detail later.

Third, we average the 3-day price data of the first and last row using the NumPy `np.average()` function. Doing this results in data points that are more robust against outliers. Comparing the first and the last 3-day price period reveals that the Apple stock price remains stable in our mini data set.

## NumPy Reshape Video

Do you want to become a NumPy master? Check out our interactive puzzle book Coffee Break NumPy and boost your data science skills! (Amazon link opens in new tab.)