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 # 创建一个三维数组 a = np.arange(24).reshape(2, 3, 4) print("原始数组:") print(a) # 将最后一个轴滚动到最前面 result = np.rollaxis(a, 2, 0) print("将最后一个轴滚动到最前面后的数组:") print(result)
输出
原始数组: [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] 将最后一个轴滚动到最前面后的数组: [[[ 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
在此示例中,通过将形状从 (2, 3, 4) 更改为 (2, 4, 3),将第二个轴(即轴 1)移动到最后一个位置 -
import numpy as np # 创建一个三维数组 a = np.arange(24).reshape(2, 3, 4) print("原始数组:") print(a) # 将第二个轴滚动到最后一个位置 result = np.rollaxis(a, 1, 3) print("将第二个轴滚动到最后一个位置后的数组:") print(result)
输出
原始数组: [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] 将第二个轴滚动到最后一个位置后的数组: [[[ 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 # 创建三维 ndarray a = np.arange(8).reshape(2, 2, 2) print('原始数组:') print(a) print(' ') # 将轴 2 滚动到轴 0(沿宽度到深度) print('应用 rollaxis 函数后(轴 2 到 0):') print(np.rollaxis(a, 2)) print(' ') # 将轴 2 滚动到轴 1(沿宽度到高度) print('应用 rollaxis 函数后(轴 2 到 1):') print(np.rollaxis(a, 2, 1))
输出
原始数组: [[[0 1] [2 3]] [[4 5] [6 7]]] 应用 rollaxis 函数后(轴 2 到 0): [[[0 2] [4 6]] [[1 3] [5 7]]] 应用 rollaxis 函数后(轴 2 到 1): [[[0 2] [1 3]] [[4 6] [5 7]]]