繁体   English   中英

如何仅使用numpy和without循环重写给定的最近邻居函数?

[英]How to rewrite a given nearest-neighbor function with only using numpy and without loops?

我有一个使用python的最近邻算法的作业。 我在纯python中有一个包含循环的给定代码。 我必须使用numpy和without循环重写和配置该函数。

我有一个未标记的点u,需要分类,距离函数和训练集(X,Y)。 我必须编写的函数应该返回与u具有最小距离的点的标签。

这是用纯python编写的函数,我必须重写:

def pynearest(u, X, Y, distance=pydistance):
    xbest = None
    ybest = None
    dbest = float('inf')

    for x, y in zip(X, Y):
        d = distance(u, x)
        if d < dbest:
            ybest = y
            xbest = x
            dbest = d

    return ybest

在Python中重写循环的过程称为矢量化。 要解决此问题,通常必须使用索引来检索矩阵中的值。 我建议你看看这个问题: 向量化 循环NumPy 在numpy / scipy中向量化循环吗? 矢量化python中的for循环

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM