Numpy moveaxis() Function



The Numpy moveaxis() function moves specified axes of an array to new positions while keeping the order of the remaining axes unchanged. This function defined in numpy module and is often used for reshaping data in multi-dimensional array, especially in complex operations where axis manipulations is required.

In NumPy, both numpy.moveaxis() and numpy.swapaxes() are used to rearrange the axes of a multi-dimensional array. The main difference is that numpy.moveaxis() allows moving multiple axes to different specified positions simultaneously, whereas numpy.swapaxes() only swaps two axes at a time.

The numpy.moveaxis() function offers more flexibility than numpy.swapaxes(), allowing multiple axes to be moved to different positions simultaneously.

Syntax

Following is the syntax of the Numpy moveaxis() function −

numpy.moveaxis(array, source, destination)

Parameters

Following are the parameters of the Numpy moveaxis() function −

  • array - The input array whose axes need to be moved.
  • source - An integer or sequence of integers specifying the original positions of the axes to move.
  • destination - An integer or sequence of integers specifying the target positions for the specified axes.

Return Value

The function returns a view of the original array with the specified axes moved to the target positions.

Example

Following is an basic example to move axis 0 to the axis 1 in a 2D array using Numpy moveaxis() function −

import numpy as np
my_Array = np.array([[85, 256, 16], [91, 36, 24]])
Moved_Array = np.moveaxis(my_Array, 0, 1)
print("Original Array:\n", my_Array)
print("Moved Axes Array (0 to 1):\n", Moved_Array)

Output

Original Array:
 [[10 20 30]
 [40 50 60]]
Moved Axes Array (0 to 1):
 [[10 40]
 [20 50]
 [30 60]]

Example - Moving an Axis in a 3D Array

In the following example, we have moved axis 0 to axis 2 in a 3D numpy array using numpy.moveaxis() function −

import numpy as np
my_Array = np.array([[[71, 44], [25, 100]], [[165, 32], [12, 1]]])
Moved_Array = np.moveaxis(my_Array, 0, 2)
print("Original Array:\n", my_Array)
print("Moved Axes Array (0 to 2):\n", Moved_Array)

Output

Original Array:
 [[[1 2]
   [3 4]]

  [[5 6]
   [7 8]]]
Moved Axes Array (0 to 2):
 [[[1 5]
   [2 6]]

  [[3 7]
   [4 8]]]

Example - Moving Multiple Axes in a 4D Array

In the following example, we have moved multiple axes in a 4D array using numpy.moveaxis() function −

import numpy as np
my_Array = np.array([[[[45, 78], [12, 63]], [[76, 82], [69, 56]]],
                [[[12, 24], [1, 39]], [[59, 85], [105, 43]]]])
Moved_Arr = np.moveaxis(my_Array, [1, 2], [2, 0])
print("Original Array:\n", my_Array)
print("Moved Axes Array (1 and 2 to 2 and 0):\n", Moved_Arr)

Output

Following is the output of above code −


Original Array:
 [[[[ 45  78]
   [ 12  63]]

  [[ 76  82]
   [ 69  56]]]


 [[[ 12  24]
   [  1  39]]

  [[ 59  85]
   [105  43]]]]
Moved Axes Array (1 and 2 to 2 and 0):
 [[[[ 45  78]
   [ 76  82]]

  [[ 12  24]
   [ 59  85]]]


 [[[ 12  63]
   [ 69  56]]

  [[  1  39]
   [105  43]]]]
numpy_array_manipulation.htm
Advertisements