如何解决python中的dsearchn等价物
是否有 Scipy 或 Numpy 函数可以在 python 中完成 dsearchn
MATLAB 命令的工作?
dsearchn
返回给定向量中与输入值最接近的值的索引。
解决方法
您可以执行以下操作:
x = np.array([1.1,1.2,1.22,1.4])
v = 1.21
def dsearchnn(x,v):
return np.where(np.abs(x-v) == np.abs(x-v).min())[0]
dsearchnn(x,v)
array([1,2])
,
近似等效效率的方法可能是 scipy 的 KDTree
或更好的 cKDTree
:
from scipy.spatial import KDTree
kdt = KDTree(P.T)
kdt.query(PQ.T)
这里的 P
和 PQ
是来自 dsearch
文档的点和查询点。 MATLAB 使用第一个维度作为点的维度,而 scipy 使用最后一个维度,因此是转置。
与单步完成的 MATLAB 方法不同,使用 KDTree
我们分两步完成:首先构造树对象,然后在其上运行 query
。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。