Contents

Axis and Dimension in NumPy

Contents

Axis and dimensions are fundamental concepts in NumPy for understanding and manipulating the multi-dimensional arrays.

This article describes the basics of array, dimension, and axis, and how to use them for manipulation multi-dimensional arrays.

Array

It is essential to understand array before learning about axes and dimensions.

An array is a homogeneous container of numerical elements (int, float, or a combination of them).

Example of a simple NumPy 1-dimensional (D) array:

# import package
import numpy as np

# 1-D array
x = np.array([1, 2, 3])

x
# output
array([1, 2, 3])

Dimension

These arrays can have multiple dimensions (number of levels of depth in an array) such as 0-D, 1-D, 2-D, 3-D, and so on.

For example, the 2-D array will have two levels (rows and columns), and the 3-D array will have three levels (rows, columns, depth).

The example of 0-D, 1-D, and 2-D arrays:

# import package
import numpy as np

# 0-D array (scalars)
x = np.array(2)

# 1-D array (vectors)
x = np.array([1, 2, 3])

# 2-D array (matrix)
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

The ndim function can be used for determining the number of dimensions of an array.

Let’s take an example of 2-D array:

# 2-D array (matrix)
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

arr_2d.ndim
# output
2

The given array is 2-D.

Now, check with 3-D array example:

# 3-D array
arr_3d = np.array([[[1, 2, 3], [4, 5, 6]], 
                     [[7, 8, 9], [10, 11, 12]]])

arr_3d.ndim
# output
3

The given array is 3-D.

Axis

In NumPy, axes provide the directions for navigating and manipulating the array elements within a multi-dimensional array.

Axes start with 0 and grow in number as the dimensions of the array increase.

When axis=0, it refers to the first level (function applied on each column) in a 2-D array. Similarly, when axis=1, it refers to the second level (function applied on each row) in a 2-D array

The following example explains how to use axes in NumPy arrays for data manipulation.

Get the sum of rows elements in a 2-D array,

# 2-D array (matrix)
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

arr_2d
# output
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])


# get sum along rows (axis=0)
arr_2d.sum(axis=0)

# output
array([12, 15, 18])

# get sum along columns (axis=1)
arr_2d.sum(axis=1)
# output
array([6, 15, 24])

In the above 2-D array, the axis=0 elements are [1, 4, 7], [2, 5, 8], and [3, 6, 9]. The sum of these elements are [12, 15, 18].

Similarly, the axis=1 elements are [1, 2, 3], [4, 5, 6], and [7, 8, 9]. The sum of these elements are [6, 15, 24].