首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中的k近邻

python中的k近邻
EN

Stack Overflow用户
提问于 2011-04-06 19:56:47
回答 4查看 32.9K关注 0票数 13

我想计算python中的K近邻。我应该使用什么库?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-06 20:00:07

我认为你应该使用scikit ann

有一个关于最近的邻居here的很好的教程。

根据文档:

ann是由David M.Mount和Sunil Arya开发的近似最近邻(ANN)库(http://www.cs.umd.edu/~mount/ANN/)的SWIG生成的python包装器。ann提供了一个不可变的kdtree实现(通过ANN),它可以执行k-最近邻和近似k

票数 22
EN

Stack Overflow用户

发布于 2011-07-15 13:41:15

下面是一个比较scipy.spatial.cKDTree和pyflann.FLANN的脚本,你可以自己看看哪个更快。

代码语言:javascript
运行
复制
import cProfile
import numpy as np
import os
import pyflann
import scipy.spatial

# Config params
dim = 4
data_size = 1000
test_size = 1

# Generate data
np.random.seed(1)
dataset = np.random.rand(data_size, dim)
testset = np.random.rand(test_size, dim)

def test_pyflann_flann(num_reps):
    flann = pyflann.FLANN()
    for rep in range(num_reps):
        params = flann.build_index(dataset, target_precision=0.0, log_level='info')
        result = flann.nn_index(testset, 5, checks=params['checks'])

def test_scipy_spatial_kdtree(num_reps):
    flann = pyflann.FLANN()
    for rep in range(num_reps):
        kdtree = scipy.spatial.cKDTree(dataset, leafsize=10)
        result = kdtree.query(testset, 5)

num_reps = 1000
cProfile.run('test_pyflann_flann(num_reps); test_scipy_spatial_kdtree(num_reps)', 'out.prof')
os.system('runsnake out.prof')
票数 5
EN

Stack Overflow用户

发布于 2011-04-07 00:00:40

scipy.spatial.cKDTree是快速和可靠的。有关将其用于NN插值的示例,请参见SO上的(ahem) inverse-distance-weighted-idw-interpolation-with-python

(如果你可以说例如:“我在3d中有1M个点,并且想要1k个新点的最近邻居”,你可能会得到更好的答案或代码示例。

找到邻居后,您想对他们做什么?)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5565935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档