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

时间:2019-04-28 12:53:19

标签: python loops numpy machine-learning nearest-neighbor

我有一个有关使用python的最近邻居算法的作业。我在纯Python中有一个给定的代码,其中包含一个循环。我必须仅使用numpy且没有循环来重写和配置该功能。

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

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

FATAL EXCEPTION: main
    Process: com.example.app, PID: XXXXX
    java.lang.NoClassDefFoundError: com.example.app.MainActivity$19
    at com.example.app.MainActivity.onCreate(MainActivity.java:421)
    at android.app.Activity.performCreate(Activity.java)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
    at android.app.ActivityThread.access$900(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
    at android.os.Handler.dispatchMessage(Handler.java)
    at android.os.Looper.loop(Looper.java)
    at android.app.ActivityThread.main(ActivityThread.java)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)

1 个答案:

答案 0 :(得分:0)

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