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

问题描述 投票:0回答:1

我有一个使用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 loops numpy machine-learning nearest-neighbor
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.