numpy.rollaxis函数

numpy.rollaxis

numpy.rollaxis 函数向后滚动特定的轴到一个特定位置,格式如下:

numpy.rollaxis(arr, axis, start)

参数说明:

  • arr:数组
  • axis:要向后滚动的轴,其它轴的相对位置不会改变
  • start:默认为零,表示完整的滚动。会滚动到特定位置。
 1 import numpy as np
 2  
 3 # 创建了三维的 ndarray
 4 a = np.arange(8).reshape(2,2,2)
 5  
 6 print ('原数组:')
 7 print (a)
 8 print ('\n')
 9 # 将轴 2 滚动到轴 0(宽度到深度)
10  
11 print ('调用 rollaxis 函数:')
12 print (np.rollaxis(a,2))
13 # 将轴 0 滚动到轴 1:(宽度到高度)
14 print ('\n')
15  
16 print ('调用 rollaxis 函数:')
17 print (np.rollaxis(a,2,1))

输出结果如下:

原数组:
[[[0 1]
  [2 3]]

 [[4 5]
  [6 7]]]


调用 rollaxis 函数:
[[[0 2]
  [4 6]]

 [[1 3]
  [5 7]]]


调用 rollaxis 函数:
[[[0 2]
  [1 3]]

 [[4 6]
  [5 7]]]

 

分析:

创建的2x2x2是一个三维数组:[[[0, 1], [2, 3]], [[4, 5], [6, 7]]]

如果要取数值 2,则a[0][1][0] ,数组下标与值对应如下表:

0(000)1(001)
2(010)3(011)
4(100)5(101)
6(110)7(111)

 

程序运行np.rollaxis(a, 2)时,将轴2滚动到了轴0前面,即:5(101) ->6(110), 其他轴相对2轴位置不变(start默认0),数组下标排序由0,1,2变成了1,2,0

这时数组按下标顺序重组,例如第一个数组中[0,1]下标为[000,001],其中0的下标变动不影响值,1位置的下标由001变成010,第一位的下标滚动到最后一位下标的后面,值由1(001)变成2(010):

0(000) ->0(000)1(001) ->2(010)
2(010) ->4(100)3(011) ->6(110)
4(100) ->1(001)5(101) ->3(011)
6(110) ->5(101)7(111) ->7(111)

 

 

 

  

 

转载于:https://www.cnblogs.com/jerryspace/p/10023851.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值