【问题标题】:Extract Specific RANGE of columns in numpy array Python在numpy数组Python中提取特定范围的列
【发布时间】:2016-06-06 06:16:17
【问题描述】:

我有一个数组:

e = np.array([[ 0,  1,  2,  3, 5, 6, 7, 8],
              [ 4,  5,  6,  7, 5, 3, 2, 5],
              [ 8,  9, 10, 11, 4, 5, 3, 5]])

我想通过 RANGE 中的列来提取数组,如果我想取范围 1 到 5 中的列,它将返回

e = np.array([[ 1,  2,  3, 5, ],
              [ 5,  6,  7, 5, ],
              [ 9, 10, 11, 4, ]])

如何解决?谢谢

【问题讨论】:

    标签: python arrays python-2.7 numpy


    【解决方案1】:

    您可以只使用 e[:, 1:5] 来检索您想要的内容。

    In [1]: import numpy as np
    
    In [2]: e = np.array([[ 0,  1,  2,  3, 5, 6, 7, 8],
       ...:               [ 4,  5,  6,  7, 5, 3, 2, 5],
       ...:               [ 8,  9, 10, 11, 4, 5, 3, 5]])
    
    In [3]: e[:, 1:5]
    Out[3]:
    array([[ 1,  2,  3,  5],
           [ 5,  6,  7,  5],
           [ 9, 10, 11,  4]])
    

    https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html

    【讨论】:

    • 我想你的意思是e[:, 1:5]
    • 如果数组由十进制数组成。我希望检索 e[:, 1.1:5.2] 即提取 1.1 到 5.2 之间的数据集及其对应列中的值,我们该怎么做?
    • 如果我想选择范围怎么办;假设列 1:3 和 5:7?
    【解决方案2】:

    Numpy 行和列索引从 0 开始计数。

    先指定行,然后指定列,用逗号分隔行与列。

    单独使用时,“:”(冒号)用于缩短所有行或所有列。

    当行或列说明符有范围时,“:”与指定包含起始范围和不包含结束范围的数字配对。

    例如

    import numpy as np
    np_array = np.array( [ [ 1, 2, 3, ],
                           [ 4, 5, 6, ],
                           [ 7, 8, 9  ] ]  )
    
    first_row = np_array[0,:]
    first_row
    output: array([1, 2, 3])
    
    last_column = np_array[:,2]
    last_column
    output: array([3, 6, 9])
    
    first_two_vals = np_array[0,0:2]
    first_two_vals
    output: array([1, 2])
    

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 1970-01-01
      • 2016-06-06
      • 2018-05-02
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多