如果我在一维上定义了两个切片对象,那么是否有可能将它们组合起来以获得一个多维切片对象,该对象可用于对numpy数组进行切片?
mat = np.zeros((10,10), dtype=np.uint8)
s1 = slice(0,5)
s2 = slice(0,5)
mat[s1,s2] # I want to achieve this effect with one slice object
slice2d = slice(s1, s2) # does not throw an error
mat[slice2d] # but this does not work发布于 2014-04-15 14:05:20
正如@unutbu所指出的,多维切片实际上是一个tuple或list of slice对象,那么:
slice2d = (s1, s2)
mat[slice2d]会起作用的。类似地,可以将其扩展到3-D,.,N-D数组:
slice3d = (s1, s2, s3)
...
sliceNd = (s1, s3, s3, ..., sN)https://stackoverflow.com/questions/22945463
复制相似问题