numpy.rollaxis 的理解

最近在自学 numpy,脑子笨,在学到翻转数组 numpy.rollaxis,理解不了官方的解释:

numpy.rollaxis 函数向后滚动特定的轴到一个特定位置
numpy.rollaxis(arr, axis, start)
参数说明:
arr:数组
axis:要向后滚动的轴,其它轴的相对位置不会改变
start:默认为零,表示完整的滚动。会滚动到特定位置。

然后去度娘找别人的理解,结果看到都是用什么索引,然后转换成二进制,看到他们的例子好像是正确的,因为例子的元素最大为 7,然后我自己测试的元素超过了 7 ,根本不适用,然后摸鱼了半天,理解成以下内容:

numpy.rollaxis 函数向后滚动特定的轴到一个特定位置
numpy.rollaxis(arr, axis, start)

首先这句话我自己的理解是:

*将 指定的轴 移至 特定轴 之前*

例:
原形状:a =(2,3,4)
b = np.rollaxis(a,2,0) # 将 轴2 移至 轴0 之前
新形状:b = (4,3,2)

其次,具体数组详情:

数组形状:shape =(2,3,4)—> (x,y,z)—> (轴0,轴1,轴2)
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]]])
np.rollaxis(a,2,0)    # 将 轴2 移至 轴0 前
New_shape = (4,2,3)—> 相对shape而言(z,x,y)—>(轴2,轴0,轴1)

可以看到的步骤:

  • z 取代了 x 的位置,所以 z 就是新的 x,有4个元素,即:0,1,2,3 ;可以确定新形状:[ [ ], [ ], [ ], [ ] ]
  • x 取代了 y 的位置,所以 x 就是新的 y,有2个二层列表,即:[0,1,2,3] 和 [12,13,14,15] 所在的列表数;可以新确定:[ [ [ ],[ ] ], [ [ ],[ ] ], [ [ ],[ ] ], [ [ ],[ ] ] ]
  • y 取代了 z 的位置,所以 y 就是新的 z,有3个子列表,即:0,4,8 和 12,16,20所在的列表数;这是对应填入第二步确定的形状:
    [ [ [0,4,8],[12,16,20] ], [ [1,5,9],[13,17,21] ], [ [2,6,10],[14,18,22] ], [ [3,7,11],[15,19,23] ] ]
array([[[ 0,  4,  8],
        [12, 16, 20]],

       [[ 1,  5,  9],
        [13, 17, 21]],

       [[ 2,  6, 10],
        [14, 18, 22]],

       [[ 3,  7, 11],
        [15, 19, 23]]])

放两张图:
一、在这里插入图片描述
二、在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值