tcp*_*tcp 3 python error-handling python-3.x
import KNN
def c(i,d,l,k):
dss=d.shape[0]
dm=tile(i,(dss,1))-d
sqm=dm**2
sqd=sqm.sum(axis=1)
dist=sqd**0.5
sDI=dist.argsort()
clc={}
for i in range(k):
vl=l[sDI[i]]
clc[vl]=clc.get(vl,0)+1
sCC=sorted(clc.items(),key=operator.itemgetter(1),reverse=True)
return sCC[0][0]
c([0,0],g,l,3)
Run Code Online (Sandbox Code Playgroud)
错误:
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
c([0,0],g,l,3)
File "<pyshell#31>", line 12, in c
sCC=sorted(clc.items(),key=operator.itemgetter(1),reverse=True)
NameError: global name 'operator' is not defined
Run Code Online (Sandbox Code Playgroud)
KNN包含以下代码:::
from numpy import *
import operator
def createDataSet():
group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
labels = ['A','A','B','B']
return group, labels
Run Code Online (Sandbox Code Playgroud)
为什么上面提到的错误?程序在Python 3.3.2上运行.此代码是一个在Python中运行的简单k分类算法.
Nin*_*ker 14
你需要import operator进入本地命名空间; import KNN也不会导入它导入的子模块.
通常,您需要明确您使用的任何和所有模块和对象,但builtins(https://docs.python.org/2/library/functions.html)除外.
与其他一些语言不同,没有隐式导入.
关于进口的高级提示/编辑:您可能很想使用KNN.operator.它在那里可用,因为它是由它导入的KNN.然而,这几乎总是一个令人遗憾的决定,因为混淆了图片:这是一个特殊的模块吗?如果是这样,它的界面是什么?保存可爱,明确.
| 归档时间: |
|
| 查看次数: |
15933 次 |
| 最近记录: |