如何在numpy数组中找到切片对象

时间:2012-12-13 13:58:05

标签: python arrays numpy find slice

我有一个包含整数和切片对象的numpy数组,例如:

x = np.array([0,slice(None)])

如何检索整数或切片对象的(逻辑)索引?我尝试了np.isfinite(x)(产生错误),np.isreal(x)(所有True),np.isscalar(x)(非元素),都是徒劳的。 似乎工作的是

ind = x<np.Inf       # Out[1]: array([True, False], dtype=bool)

但是我不愿意对一个数值完全随意的物体进行数值比较(以后可能会改变吗?)。有没有更好的解决方案来实现这一目标?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

import numpy as np
checker = np.vectorize( lambda x: isinstance(x,slice) )
x = np.array([0,slice(None),slice(None),0,0,slice(None)])
checker(x)
#array([False,  True,  True, False, False,  True], dtype=bool)