我正在尝试使用变量中预定义的切片来对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]])切片变量的类型对我来说并不重要,我只是使用一个字符串作为示例。如何保存像那样的切片说明符?
发布于 2012-09-27 16:16:52
您可以使用内置的slice函数
s = slice(1,3)
b[s,s]
ds = (s,s)
b[ds]发布于 2012-09-27 17:29:17
numpy.s_ and numpy.index_exp提供了一种方便的方法来实现这一点:
the_slice = numpy.index_exp[1:3, 1:3]
b[the_slice]对于slice、元组、None和Ellipsis的组合,它们不能做任何您不能做的事情,但是它们允许您使用与对数组切片完全相同的语法( s_和index_exp之间唯一的区别是,对于一维切片,s_返回切片对象,而index_exp将其包装在元组中)。
https://stackoverflow.com/questions/12616821
复制相似问题