numpy.rollaxis()详解

numpy.rollaxis()详解
转载PMPWDF 最后发布于2019-07-13 17:14:58 阅读数 198 收藏
展开
numpy.rollaxis(a, axis, start=0) 向后滚动指定的轴,直到它位于给定位置。
参数:
a:ndarray
输入数组。
axis:int
轴向后滚动。其他轴的位置相对于彼此不改变。
start:int,可选
轴被滚动,直到它位于此位置之前。默认值为0,导致“完成”滚动。
返回:
res:ndarray
对于Numpy> = 1.10,始终返回a的视图。对于早期的Numpy版本,只有当轴的顺序改变时,才返回a的视图,否则返回输入数组。

创建了三维的 ndarray

import numpy as np
a = np.arange(8).reshape(2,2,2)
print '原数组:'print aprint np.rollaxis(a,2)
print np.rollaxis(a,2,1)我们来先看结果,如下:
原数组:
[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
调用 np.rollaxis(a,2)函数结果:
[[[0 2]
[4 6]]
[[1 3]
[5 7]]]
调用 np.rollaxis(a,2,1) 函数结果:
[[[0 2]
[1 3]]
[[4 6]
[5 7]]]
如何理解呢,很简单,写出原数组的轴的索引:
000 001
010 011
100 101
110 111

调用 np.rollaxis(a,2)函数意思就是将2轴旋转至轴0的前面,轴序0,1,2变成1,2,0 操作等同于np.rollaxis(a,2,0)新的轴至原轴的索引可以表示为:
000 010
100 110
001 011
101 111

对应的值即为:

[[[0 2]
[4 6]]
[[1 3]
[5 7]]]

调用 np.rollaxis(a,2,1) 将轴2滚动到轴1之前(相当于轴1和2位置交换),函数结果:轴序0,1,2变更为0, 2, 1
[[[0 2]
[1 3]]
[[4 6]
[5 7]]]

000 010
001 011
100 110
101 111

依此类推:

print(np.rollaxis(a,1))# 将第1轴移动到轴0前面(相当于轴0和1交换位置),轴序0,1,2变更为1, 0, 2,等同于np.(rollaxis(a,1,0)

[[[0 1]
[4 5]]
[[2 3]
[6 7]]]

000 001
100 101
010 011
110 111

print(np.rollaxis(a,0,1))# 将第0轴移动到轴1之前,相当于没动,轴序0,1,2依旧为 0,1,2
[[[0 1]
[2 3]]
[[4 5]
[6 7]]]

print(np.rollaxis(a,0,2))# 将第0轴移动到轴2之前,轴序0,1,2变更为 1,0,2
[[[0 1]
[4 5]]
[[2 3]
[6 7]]]

print(np.rollaxis(a,0,1))# 将第0轴移动到轴1之前,相当于没动,轴序0,1,2依旧为 0,1,2

[[[0 1]
[2 3]]
[[4 5]
[6 7]]]

print(np.rollaxis(a,0,2))# 将第0轴移动到轴2之前,轴序0,1,2变更为 1,0,2
[[[0 1]
[4 5]]
[[2 3]
[6 7]]]

000 001
100 101
010 011
110 111

print(np.rollaxis(a,2,0))# 将轴2滚动到轴0之前面,轴序0,1,2变更变更为 1,2,0

[[[0 2]
[4 6]]
[[1 3]
[5 7]]]

000 010
100 110
001 011
101 111

swapaxes函数相对就简单多了,轴顺序直接对调就是了。

作者:Kieven2oo8
来源:CSDN
原文:https://blog.csdn.net/kieven2008/article/details/80035668
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值