【发布时间】:2019-07-26 23:50:56
【问题描述】:
我有一个形状为 n x d 的 numpy 数组。每行代表 R^d 中的一个点。我想将此数组过滤为仅在单个点的每个轴上给定距离内的行 - 一个 d 维超立方体。
在一维中,这可能是:
array[np.which(array < lmax and array > lmin)]
其中 lmax 和 lmin 是与点+距离相关的最大值和最小值。但我想在 d 维度上做到这一点。 d 不是固定的,所以硬编码是行不通的。我检查了上述方法是否适用于 lmax 和 lmin 是 d 长度向量的情况,但它只是使数组变平。
我知道我可以将矩阵和点插入到 scipy.spatial.distance 之类的距离计算器中并获得某种距离度量,但这可能比一些简单的过滤(如果存在)要慢。
事实上我必须进行数百万次的计算,这意味着理想情况下我想要一个快速的解决方案。
【问题讨论】: