• 翻转数组(flip()函数)--numpy


    1. 函数功能

    沿着指定轴翻转数组元素的顺序,数组形状保持不变,但是数组元素顺序会被重排

    2. 函数语法

    numpy.flip(m, axis=None)
    
    • 1

    3. 函数参数与示例

    参数含义
    m输入数组
    axis取值为None、整数、整数构成的元组

    3.1 一维数组

    import numpy as np
    # 1. 一维数组: 翻转数组是将数组的数据倒序排列,但数组形状不变
    a = np.arange(10)
    print('原始数组a: ', a, sep='\n')
    a1 = np.flip(a)
    print('翻转数组a得到数组a1: ', a1, sep='\n')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    对于一维数组这个flip函数的作用相当于 a[::-1]

    3.2 二维数组

    3.2.1 不指定轴axis

    import numpy as np
    
    # 1)不指定轴axis
    b = np.array([[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 5, 6], [2, 4, 7, 8]])
    print('数组b:', b, sep='\n')
    b1 = np.flip(b)
    print('翻转数组b得到数组b1: ', b1, sep='\n')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    3.2.2 指定轴axis

    b = np.array([[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 5, 6], [2, 4, 7, 8]])
    print('数组b:', b, sep='\n')
    b1 = np.flip(b, axis=1)
    print('沿着轴axis=1翻转数组b得到数组b1: ', b1, sep='\n')
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    当指定轴axis=1,沿着列翻转,行上包含的元素不变,列上的元素倒序排列,如上图中,最后一列变成第一列,倒数第二列变成第二列,以此类推;相当于 b[:, ::-1]

    3.3 三维数组

    3.3.1 不指定轴

    import numpy as np
    
    c = np.array([[[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 2, 2], [3, 4, 4, 5]],
                  [[1, 2, 1, 2], [30, 40, 40, 42], [12, 23, 22, 21], [33, 34, 54, 64]]])
    print('c:', c, sep='\n')
    c1 = np.flip(c)
    print('翻转数组c得到数组c1: ', c1, sep='\n')
    print(c[::-1, ::-1, ::-1])
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    在这里插入图片描述
    将所有轴的数据都进行翻转,相当于c[::-1, ::-1, ::-1]

    3.3.2 沿着指定轴翻转

    1) axis=0
    c2 = np.flip(c, axis=0)
    print('翻转数组c得到数组c2: ', c2, sep='\n')
    
    • 1
    • 2

    在这里插入图片描述
    沿着轴axis=0的方向翻转,上下两块数组位置互换,相当于c[::-1]

    2) axis=1
    c3 = np.flip(c, axis=1)
    print('翻转数组c得到数组c3: ', c3, sep='\n')
    
    • 1
    • 2

    在这里插入图片描述
    沿着axis=1的方向翻转,相当于c[::, ::-1, ::]

    3.3.3 axis取值为元组

    c4 = np.flip(c, axis=(0, 2))
    print('翻转数组c得到数组c4: ', c4, sep='\n')
    
    • 1
    • 2

    在这里插入图片描述
    在轴aixs=0和轴axis=2两个轴上同时翻转,相当于c[::-1, ::, ::-1]

    4. 返回值

    返回一个原数组沿着指定轴翻转后的view,返回的数组与原数组共享同一个内存区域,但是不同的对象

    import numpy as np
    
    c = np.array([[[1, 2, 1, 2], [3, 4, 4, 4], [1, 2, 2, 2], [3, 4, 4, 5]],
                  [[1, 2, 1, 2], [30, 40, 40, 42], [12, 23, 22, 21], [33, 34, 54, 64]]])
    # print('c:', c, sep='\n')
    
    d = c.view()
    
    print(id(c))
    print(id(d))
    print(d.base is c)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

  • 相关阅读:
    iOS 用masonry布局Scrollview的问题,添加在scrollview的子控件约束失效
    servlet相关
    项目实战——配置MySQL与Spring Security模块
    HTTPS 是如何进行安全传输的 ?
    R语言-如何读写带分隔符的文件
    外部H5页面打开微信小程序最新流程
    男孩姓卜取什么名字好听
    list的const迭代器的实现
    “px、pt、ppi、dpi、dp、sp”全攻略
    记录Yolov5的使用(1)
  • 原文地址:https://blog.csdn.net/chongbaikaishi/article/details/127134979