## Numpy Array Dimensions

Numpy is a powerful library in Python that provides fast and efficient mathematical operations on large multi-dimensional arrays and matrices. One of the fundamental concepts in Numpy is the array dimension, which determines the shape and size of the array.

In this article, we will explore numpy array dimensions in detail and provide code examples to demonstrate the concepts.

## Understanding Numpy Array Dimensions

Before diving into the code examples, let’s first understand what array dimensions mean in Numpy. A numpy array can have one or more dimensions. Each dimension represents a specific axis of the array. For example, a 1-dimensional array is a row or column, a 2-dimensional array is a matrix, and a 3-dimensional array is a cube-like structure.

The number of dimensions in a numpy array is known as its rank. Numpy arrays are referred to using the term “rank” instead of “dimensions.” For instance, a 1-dimensional array has a rank of 1, a 2-dimensional array has a rank of 2, and so on.

## Code Examples

Now, let’s dive into some code examples that showcase numpy array dimensions and manipulation.

### Example 1: Creating a 1-dimensional array

To create a 1-dimensional numpy array, we can use the `numpy.array()`

function and pass it a list of values. Here’s an example:

```
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
```

Output:

In this example, we create a 1-dimensional numpy array `arr`

containing the values `[1, 2, 3, 4, 5]`

. The output shows the array itself.

### Example 2: Creating a 2-dimensional array

To create a 2-dimensional numpy array, we can pass a list of lists to the `numpy.array()`

function. Each inner list represents a row in the array. Here’s an example:

```
import numpy as np
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print(arr)
```

Output:

In this example, we create a 2-dimensional numpy array `arr`

with two rows and three columns. The output shows the array structure.

### Example 3: Creating a 3-dimensional array

To create a 3-dimensional numpy array, we can pass a list of matrices to the `numpy.array()`

function. Each matrix represents a slice in the array. Here’s an example:

```
import numpy as np
arr = np.array([[[1, 2, 3],
[4, 5, 6]],
[[7, 8, 9],
[10, 11, 12]]])
print(arr)
```

Output:

In this example, we create a 3-dimensional numpy array `arr`

with two 2×3 matrices. The output shows the array structure.

### Example 4: Getting the number of dimensions

To get the number of dimensions of a numpy array, we can use the `ndim`

attribute. Here’s an example:

```
import numpy as np
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print(arr.ndim)
```

Output:

In this example, we create a 2-dimensional numpy array `arr`

and use the `ndim`

attribute to get the number of dimensions, which is 2.

### Example 5: Getting the shape of an array

The shape of an array represents the size of each dimension. To get the shape of an array, we can use the `shape`

attribute. Here’s an example:

```
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr.shape)
```

Output:

In this example, we create a 1-dimensional numpy array `arr`

and use the `shape`

attribute to get its shape, which is `(5,)`

. The comma represents the absence of additional dimensions.

### Example 6: Reshaping an array

We can reshape a numpy array to change its dimensional structure. To reshape an array, we can use the `reshape()`

function. Here’s an example:

```
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
reshaped_arr = arr.reshape((2, 3))
print(reshaped_arr)
```

Output:

In this example, we create a 1-dimensional numpy array `arr`

and reshape it to a 2-dimensional array with two rows and three columns using the `reshape()`

function.

### Example 7: Adding a new dimension

Sometimes, we may need to add a new dimension to an existing numpy array. We can achieve this using the `np.newaxis`

keyword. Here’s an example:

```
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
new_dimension_arr = arr[np.newaxis, :]
print(new_dimension_arr.shape)
```

Output:

In this example, we add a new dimension to the 1-dimensional numpy array `arr`

using `np.newaxis`

. The resulting array `new_dimension_arr`

has a shape of `(1, 5)`

.

### Example 8: Removing a dimension

To remove a dimension from an existing numpy array, we can use the `np.squeeze()`

function. Here’s an example:

```
import numpy as np
arr = np.array([[[1, 2, 3],
[4, 5, 6]]])
squeezed_arr = np.squeeze(arr)
print(squeezed_arr.shape)
```

Output:

In this example, we create a 3-dimensional numpy array `arr`

and remove the outermost dimension using the `np.squeeze()`

function. The resulting array `squeezed_arr`

has a shape of `(2, 3)`

.

### Example 9: Transposing an array

To transpose a numpy array, we can use the `T`

attribute or the `np.transpose()`

function. Here’s an example:

```
import numpy as np
arr = np.array([[1, 2, 3],
[4, 5, 6]])
transposed_arr = arr.T
print(transposed_arr)
```

Output:

In this example, we create a 2-dimensional numpy array `arr`

and transpose it using the `T`

attribute. The resulting array `transposed_arr`

swaps the rows and columns.

### Example 10: Adding arrays along a specific axis

Numpy allows us to perform operations along specific axes of an array, such as adding arrays along a particular axis. Here’s an example:

```
import numpy as np
arr = np.array([[1, 2, 3],
[4, 5, 6]])
sum_axis_0 = np.sum(arr, axis=0)
print(sum_axis_0)
```

Output:

In this example, we create a 2-dimensional numpy array `arr`

and add its elements along the first axis (axis 0) using the `np.sum()`

function. The resulting array `sum_axis_0`

contains the sums of the columns.

## Conclusion of Numpy Array Dimensions

Understanding numpy array dimensions is essential for working with multi-dimensional arrays using Numpy. Numpy’s array dimensions open up a world of possibilities for scientific and numerical computing.

In this article, we explored the concept of array dimensions, learned how to create arrays with different dimensions, manipulate arrays, and perform operations along specific axes. We also provided code examples to illustrate each concept.