# NumPy: Combining Two 1D Arrays into a 2D Array Step-by-Step Examples

In this blog post, we'll walk through the process step by step, unraveling the magic of NumPy.

## Step 1: Importing NumPy

Before we dive into the examples, let's ensure we have NumPy installed and imported.

``````
pip install numpy
``````

Now, let's import NumPy:

``````
import numpy as np
``````

## Step 2: Creating 1D Arrays

Let's start by creating two simple 1D arrays. For the sake of this example, we'll use the arrays arr1 and arr2:

``````
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
``````

## Step 3: Combining into a 2D Array - np.vstack

NumPy provides the np.vstack function to vertically stack arrays. This means combining them along the rows to create a 2D array. Let's see how it's done:

``````
result_2d = np.vstack((arr1, arr2))
print("Resulting 2D Array:\n", result_2d)
``````

``````
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result_2d = np.vstack((arr1, arr2))
print("Resulting 2D Array:\n", result_2d)
``````

This will output:

``````
Resulting 2D Array:
[[1 2 3]
[4 5 6]]
``````

## Step 4: Combining into a 2D Array - np.concatenate

Alternatively, you can use the np.concatenate function with the axis parameter set to 0 for vertical stacking:

``````
result_concat = np.concatenate((arr1.reshape(1, -1), arr2.reshape(1, -1)), axis=0)
print("Resulting 2D Array (using concatenate):\n", result_concat)
``````

Here, we use reshape(1, -1) to convert the 1D arrays into 2D arrays with a single row.

``````
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result_concat = np.concatenate((arr1.reshape(1, -1), arr2.reshape(1, -1)), axis=0)
print("Resulting 2D Array (using concatenate):\n", result_concat)
``````

``````
Resulting 2D Array (using concatenate):
[[1 2 3]
[4 5 6]]
``````