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
广告