我正在编写一个用于查找K Nereast Neighbor的代码,并且需要使用numPy Python包进行计算。我附上下面的功能代码:Python导入包函数
#Import packages
import numpy as np
def knn(Q,R,k,classvar):
#Function that does k-NN and selects the k Nearest Neighbours
#Input parameters
#Q array of Query points, R array of reference points
#k is the no of closest points in k-NN
#classvar is binary class variable either 1 or 0
#for loop over all Query points
#calculate distance from ith Query point to all reference points
dist = np.apply_along_axis(np.linalg.norm, 1, R-Q)
#sort distances and find indexes
index=np.argsort(dist)
#pick the kth closest indexes
knearest=index[1:k]
#find the count of 1's and 0's in the binary class variable
#if count of 1 is more than count of 0 predict class 1 else class 0
if sum(e==0) > sum(e==1):
preclassQ=0;
else:
preclassQ=1;
return preclassQ
首先,我想知道,是有必要包含声明
from numpy import *
函数定义
,但我们打算给它在IPython中命令行 ?
我救了这个代码knn.py,然后导入它的命令行和调用的函数如下:
In [58]: import knn
In [59]: knn.knn(b,a,1,[(0),(0),(1),(1)])
但功能不执行,我得到一个错误如下:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/Project/<ipython console> in <module>()
/Project/knn.py in knn(Q, R, k, classvar)
14 dist = np.apply_along_axis(np.linalg.norm, 1, R-Q)
15 #sort distances and find indexes
---> 16 index=np.argsort(dist)
17 #pick the kth closest indexes
18 knearest=index[1:k]
NameError: global name 'numpy' is not defined