顽皮地找出绝对距离内特定距离内的点数

时间:2019-07-15 06:41:18

标签: python-3.x numpy distance

我的数组颠簸。我想找到距每个点都在ε距离之内的点数。

我当前的代码是(对于n * 2数组,但是通常我希望该数组为n * m)

epsilon = np.array([0.5, 0.5])
np.array([ 1/np.float(np.sum(np.all(np.abs(X-x) <= epsilon, axis=1))) for x in X])

但是,当涉及到一百万行50列的数组时,此代码可能并不高效。有没有更好,更有效的方法?

1 个答案:

答案 0 :(得分:1)

例如数据

X = np.random.rand(10, 2)

您可以使用广播解决此问题:

1 / np.sum(np.all(np.abs(X[:, None, ...] - X[None, ...]) <= epsilon, axis=-1), axis=-1)