NumPy数组(numpy数组的切片与索引以及处理数组形状)

数组的切片与索引

一维NumPy数组的切片操作与Python列表的切片一样

  1. 通过下标选择该数组3-7的数
    In [1]: import numpy as np
    
    In [2]: a = np.arange(9)
    
    In [3]: a[3:7]
    Out[3]: array([3, 4, 5, 6])
    
  2. 下标范围0-7,下标每次递增2
    In [6]: a[:7:2]
    Out[6]: array([0, 2, 4, 6])
    
  3. 通过负值翻转数组
    In [7]: a[::-1]
    Out[7]: array([8, 7, 6, 5, 4, 3, 2, 1, 0])
    

处理数组形状

In [8]: b = np.arange(24).reshape(2,3,4)

In [9]: b
Out[9]: 
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]]])
  • 拆解(ravel)

    可以利用ravel()函数将多维数组变成一维数组

      In [10]: b.ravel()
      Out[10]: 
      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])
    
  • 拉直(Flatten)

    其功能与ravel()相同,不同的是flatten()返回的是真实的数组,需要分配新的空间;而ravel()返回的只是数组的视图

      In [11]: b.flatten()
      Out[11]: 
      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])
    
  • 用元祖指定数组形状

    除reshape()函数外,还可以用元祖来定义数组的形状

      In [13]: b.shape = (6,4)
    
      In [14]: b
      Out[14]: 
      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]])
    
  • 转置(transpose)

    转置是一种数据变换方法;对于二维表而言,转置就意味着行变成列,列变成行

     In [16]: b.transpose()
     Out[16]: 
     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]])
    
  • 调整大小(resize)

    函数resize()的作用类似于reshape(),但是会改薄案所作用的数组

     In [18]: b
     Out[18]: 
     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]])
    

结束语

如果您对这篇文章有什么意见或者建议,请评论与我讨论.
如果您觉得还不错的话~可以点个喜欢鼓励我哦.
如果您想和我一起学习,请毫不吝啬的私信我吧~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,358评论 0 18
  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 2,797评论 1 13
  • 删掉重新来一次吧,记得改那个脚本修改 /home/ubuntu/eos/scripts/install_depen...
    卢衍泓阅读 1,470评论 0 1
  • 无言 !痛苦向我蔓延。 我想我不该垂涎你的美。 错乱的神经,无辜的灵魂。 以及我无法自拔的感觉。 我拿着我的报应,...
    智深静思阅读 293评论 0 0
  • 第一个年假,在楼道抽烟时决定的,工作事太少,于是回家看看。回家,再好不过,算算这七年,在家时间加起来不到一年,父母...
    rawu阅读 305评论 0 0

友情链接更多精彩内容