代码之家  ›  专栏  ›  技术社区  ›  Roman

从行/列中提取元素

  •  0
  • Roman  · 技术社区  · 8 年前
    import numpy as np
    data = np.arange(35).reshape(7,5)
    print (data)
    

    enter image description here

    我想提取红色里面的元素。

    result = data[-3:, -2:]
    

    打印(结果)

    [[23 24]
     [28 29]
     [33 34]]
    

    错误的

    如何正确?

    2 回复  |  直到 8 年前
        1
  •  1
  •   user3483203    8 年前

    你很接近,但你的 -2 位于错误的一侧 :

    您想从最后3行访问,但仅限于 截至 最后两列:

    In [52]: data[-3:, :-2]
    Out[52]:
    array([[20, 21, 22],
           [25, 26, 27],
           [30, 31, 32]])
    

    -2: ==最后两列

    :-2 ==直到最后两列

    如果明确需要最后3行和前3列,还可以使用:

    In [53]: data[-3:, :3]
    Out[53]:
    array([[20, 21, 22],
           [25, 26, 27],
           [30, 31, 32]])
    
        2
  •  1
  •   user9703439 user9703439    8 年前

    优雅完美:

    result = data[-3:, :3]