NumPy rollaxis() 函式



NumPy 的rollaxis()函式用於將指定的軸向後滾動,直到它位於給定的位置,同時相應地移動其他所有軸。

此函式對於更改多維陣列中軸的順序非常有用,同時不會修改陣列的資料。

此函式接受三個引數:陣列、要滾動的軸和起始位置。軸將向後滾動,直到到達起始位置。

語法

NumPy rollaxis() 函式的語法如下:

numpy.rollaxis(a, axis, start=0)

引數

以下是 NumPy rollaxis() 函式的引數:

  • a : 輸入陣列。
  • axis : 要滾動的軸。該軸將向後滾動,直到位於給定位置。
  • start : 軸將向後滾動,直到位於此位置之前。預設為 0,即滾動的軸將移到前面。

返回值

此函式返回軸已滾動到指定位置的陣列。

示例 1

以下是 NumPy rollaxis() 函式的示例,其中最後一個軸(即軸 2)透過將形狀從 (2, 3, 4) 更改為 (4, 2, 3) 而移動到前面:

import numpy as np

# Create a 3-dimensional array
a = np.arange(24).reshape(2, 3, 4)
print("Original array:")
print(a)

# Roll the last axis to the front
result = np.rollaxis(a, 2, 0)
print("Array after rolling last axis to the front:")
print(result)

輸出

Original array:
 [[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

Array after rolling last axis to the front:
 [[[ 0  4  8]
  [12 16 20]]

 [[ 1  5  9]
  [13 17 21]]

 [[ 2  6 10]
  [14 18 22]]

 [[ 3  7 11]
  [15 19 23]]]

示例 2

在此示例中,第二個軸(即軸 1)透過將形狀從 (2, 3, 4) 更改為 (2, 4, 3) 而移動到最後一個位置:

import numpy as np

# Create a 3-dimensional array
a = np.arange(24).reshape(2, 3, 4)
print("Original array:")
print(a)

# Roll the second axis to the last position
result = np.rollaxis(a, 1, 3)
print("Array after rolling second axis to the last position:")
print(result)

輸出

Original array:
 [[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

Array after rolling second axis to the last position:
 [[[ 0  1  2]
  [ 4  5  6]
  [ 8  9 10]]

 [[12 13 14]
  [16 17 18]
  [20 21 22]]

 [[ 3  7 11]
  [15 19 23]]]

示例 3

在此示例中,我們使用numpy.rollaxis()來操作三維 NumPy 陣列的軸:

import numpy as np

# Creating a 3-dimensional ndarray
a = np.arange(8).reshape(2, 2, 2)

print('The original array:')
print(a)
print('\n')

# Roll axis 2 to axis 0 (along width to along depth)
print('After applying rollaxis function (axis 2 to 0):')
print(np.rollaxis(a, 2))
print('\n')

# Roll axis 2 to axis 1 (along width to height)
print('After applying rollaxis function (axis 2 to 1):')
print(np.rollaxis(a, 2, 1))

輸出

The original array:
[[[0 1]
  [2 3]]

 [[4 5]
  [6 7]]]


After applying rollaxis function (axis 2 to 0):
[[[0 2]
  [4 6]]

 [[1 3]
  [5 7]]]


After applying rollaxis function (axis 2 to 1):
[[[0 2]
  [1 3]]

 [[4 6]
  [5 7]]]
numpy_array_manipulation.htm
廣告