Xer*_*Xes 10 python numpy slice
我正在尝试使用在变量中预定义的切片来切割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]])
Run Code Online (Sandbox Code Playgroud)
但我想做的是这样的事情:
slice = "1:3,1:3"
b[slice]
# Output:
# array([[11, 12],
# [21, 22]])
Run Code Online (Sandbox Code Playgroud)
对我来说切片变量的类型并不重要,我只是以字符串为例.如何保存这样的切片说明符?
Pie*_* GM 21
您可以使用内置slice
功能
s = slice(1,3)
b[s,s]
ds = (s,s)
b[ds]
Run Code Online (Sandbox Code Playgroud)
Jam*_*mes 11
numpy.s_
并numpy.index_exp
提供一种方便的方法:
the_slice = numpy.index_exp[1:3, 1:3]
b[the_slice]
Run Code Online (Sandbox Code Playgroud)
他们不能做任何你不能做的事情,组合slice
,元组,None
和Ellipsis
,但它们允许你使用完全相同的语法切片数组(唯一的区别是s_
和之间index_exp
的一个一维切片,s_
返回切片对象,同时index_exp
将其包装在元组中).