Python 使用cython中的np.where作为索引

Python 使用cython中的np.where作为索引,python,numpy,indexing,cython,where-clause,Python,Numpy,Indexing,Cython,Where Clause,我试图在cython程序中使用np.where来选择值在半径内的位置。通常这对numpy有效,但对cython我有 TypeError:“tuple”对象不能解释为整数 def test(double[:,::1] array, double[:] point, double radius): array = np.asarray(array) idx = np.where(np.logical_and(np.greater_equal(array[:, 0], point[0]

我试图在cython程序中使用np.where来选择值在半径内的位置。通常这对numpy有效,但对cython我有

TypeError:“tuple”对象不能解释为整数

def test(double[:,::1] array, double[:] point, double radius):
    array = np.asarray(array)
    idx = np.where(np.logical_and(np.greater_equal(array[:, 0], point[0] - radius), np.less_equal(array[:, 0], point[0] + radius)))
    a = array[idx]
我试着这样做,但出现了错误

只有整数标量数组才能转换为标量索引


a=array[idx[0].astype(int)]

奇怪的是,即使我已经做了np.asarray,它也能做到这一点

a = np.array(array)[idx[0]]

我想您需要一个给出TypeError的=数组[idx[0]]:只有整数标量数组可以转换为标量索引。。。。。因为我相信输出是数组的元组。我也尝试过做a=array[idx[0].astype(int)]