zoukankan      html  css  js  c++  java
  • NumPy切片和索引

    NumPy - 切片和索引

    ndarray对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样。

    如前所述,ndarray对象中的元素遵循基于零的索引。 有三种可用的索引方法类型: 字段访问,基本切片高级索引

    基本切片是 Python 中基本切片概念到 n 维的扩展。 通过将startstopstep参数提供给内置的slice函数来构造一个 Python slice对象。 此slice对象被传递给数组来提取数组的一部分。

    示例 1

    import numpy as np
    a = np.arange(10)
    s = slice(2,7,2)  
    print a[s]
    

    输出如下:

    [2  4  6]
    

    在上面的例子中,ndarray对象由arange()函数创建。 然后,分别用起始,终止和步长值272定义切片对象。 当这个切片对象传递给ndarray时,会对它的一部分进行切片,从索引27,步长为2

    通过将由冒号分隔的切片参数(start:stop:step)直接提供给ndarray对象,也可以获得相同的结果。

    示例 2

    import numpy as np
    a = np.arange(10)
    b = a[2:7:2]  
    print b
    

    输出如下:

    [2  4  6]
    

    如果只输入一个参数,则将返回与索引对应的单个项目。 如果使用a:,则从该索引向后的所有项目将被提取。 如果使用两个参数(以:分隔),则对两个索引(不包括停止索引)之间的元素以默认步骤进行切片。

    示例 3

    # 对单个元素进行切片  
    import numpy as np
    
    a = np.arange(10)
    b = a[5]  
    print b
    

    输出如下:

    5
    

    示例 4

    # 对始于索引的元素进行切片  
    import numpy as np
    a = np.arange(10)  
    print a[2:]
    

    输出如下:

    [2  3  4  5  6  7  8  9]
    

    示例 5

    # 对索引之间的元素进行切片  
    import numpy as np
    a = np.arange(10)  
    print a[2:5]
    

    输出如下:

    [2  3  4]
    

    上面的描述也可用于多维ndarray

    示例 6

    import numpy as np
    a = np.array([[1,2,3],[3,4,5],[4,5,6]])  
    print a
    # 对始于索引的元素进行切片  
    print  '现在我们从索引 a[1:] 开始对数组切片'  
    print a[1:]
    

    输出如下:

    [[1 2 3]
     [3 4 5]
     [4 5 6]]
    
    现在我们从索引 a[1:] 开始对数组切片
    [[3 4 5]
     [4 5 6]]
    

    切片还可以包括省略号(...),来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的ndarray

    示例 7

    # 最开始的数组  
    import numpy as np
    a = np.array([[1,2,3],[3,4,5],[4,5,6]])  
    print  '我们的数组是:'  
    print a
    print  '
    '  
    # 这会返回第二列元素的数组:  
    print  '第二列的元素是:'  
    print a[...,1]  
    print  '
    '  
    # 现在我们从第二行切片所有元素:  
    print  '第二行的元素是:'  
    print a[1,...]  
    print  '
    '  
    # 现在我们从第二列向后切片所有元素:
    print  '第二列及其剩余元素是:'  
    print a[...,1:]
    

    输出如下:

    我们的数组是:
    [[1 2 3]
     [3 4 5]
     [4 5 6]]
    
    第二列的元素是:
    [2 4 5]
    
    第二行的元素是:
    [3 4 5]
    
    第二列及其剩余元素是:
    [[2 3]
     [4 5]
     [5 6]]
  • 相关阅读:
    day 23 索引
    day 22 全量更新
    day 21 求贫困户
    day20 函数,同比,和基础
    知识点记录
    day 20试题
    day 16面试题
    day 13拉链数据做存储
    day 13 拉链数据批量处理
    一维,二维,三维数组,vector 初始化
  • 原文地址:https://www.cnblogs.com/navysummer/p/9640715.html
Copyright © 2011-2022 走看看