【问题标题】:Numpy slicing from variable来自变量的 Numpy 切片
【发布时间】:2012-09-18 23:16:35
【问题描述】:

我正在尝试使用在变量中预定义的切片来切片 numpy 数组。这有效:

b = fromfunction(lambda x,y: 10*x+y, (5,4),dtype=int) # Just some matrix

b[1:3,1:3]
# Output:
# array([[11, 12],
#       [21, 22]])

但我想做的是这样的:

slice = "1:3,1:3"
b[slice]
# Output:
# array([[11, 12],
#       [21, 22]])

切片变量的类型对我来说并不重要,我只是以字符串为例。如何保存这样的切片说明符?

【问题讨论】:

    标签: python numpy slice


    【解决方案1】:

    可以使用内置的slice函数

    s = slice(1,3)
    b[s,s]
    
    ds = (s,s)
    b[ds]
    

    【讨论】:

      【解决方案2】:

      numpy.s_ and numpy.index_exp 提供了一种方便的方法:

      the_slice = numpy.index_exp[1:3, 1:3]
      b[the_slice]
      

      它们不能做任何你不能用 slice、元组、NoneEllipsis 的组合做的事情,但它们允许你使用与切片完全相同的语法一个数组(s_index_exp 之间的唯一区别是对于一维切片,s_ 返回一个切片对象,而index_exp 将其包装在一个元组中)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-05
        • 2020-01-14
        • 2020-08-02
        • 2021-09-28
        • 2022-01-16
        • 2021-11-17
        相关资源
        最近更新 更多