Python numpy.rollaxis函数方法的使用

numpy.rollaxis 是一个用于重塑数组的函数,它可以将数组的轴旋转到指定的位置。这个函数对于处理多维数组非常有用,特别是在需要改变数据布局或进行数据分析时。本文主要介绍一下NumPy中rollaxis方法的使用。

numpy.rollaxis

numpy.rollaxis(a, axis, start=0)      [source]

向后滚动指定的轴,直到其位于给定的位置。

继续支持此功能以实现向后兼容,但是您应该首选moveaxis。moveaxis功能已在NumPy 1.11中添加。

参数 :

andarray

输入数组。

axisint

要滚动的轴。 其他轴的位置相对彼此不变。

start :int, 可选

start<= axis(开始<=轴)时,轴将回滚直到其位于该位置。 

start>axis时,轴将滚动直到其位于该位置之前。 默认值为0,

将导致“complete” 滚动。 下表描述了如何解释start的负值:


返回值 :

res :ndarray

对于NumPy> = 1.10.0,始终返回a的视图。 

对于较早的NumPy版本,仅当更改轴顺序时才返回a的视图,

否则返回输入数组。

例子

1)将最后一个轴移到第一个位置

import numpy as np

# 创建一个3维数组
arr = np.ones((3, 4, 5))

# 使用 rollaxis 将最后一个轴(轴2)移到第一个位置
rolled_arr = np.rollaxis(arr, 2, 0)

print("Original shape:", arr.shape)
print("Rolled shape:", rolled_arr.shape)

2)使用示例

import numpy as np

# 创建一个形状为 (3, 4, 5, 6) 的全 1 数组
a = np.ones((3, 4, 5, 6))

# 将第四个轴(轴索引 3)移到第二个位置(索引 1)
rolled_1 = np.rollaxis(a, 3, 1)
print("Original shape:", a.shape)
print("After rolling axis 3 to position 1:", rolled_1.shape)
# 输出: (3, 6, 4, 5)

# 将第三个轴(轴索引 2)移到第一个位置(默认 start=0)
rolled_2 = np.rollaxis(a, 2)
print("Original shape:", a.shape)
print("After rolling axis 2 to position 0:", rolled_2.shape)
# 输出: (5, 3, 4, 6)

# 将第二个轴(轴索引 1)移到第四个位置(索引 4)
rolled_3 = np.rollaxis(a, 1, 4)
print("Original shape:", a.shape)
print("After rolling axis 1 to position 4:", rolled_3.shape)
# 输出: (3, 5, 6, 4)

推荐阅读
cjavapy编程之路首页