gpt4 book ai didi

python - 名称错误 : global name 'operator' is not defined

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:13 25 4
gpt4 key购买 nike

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)

错误:

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

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

为什么会出现上述错误?程序在 Python 3.3.2 上运行。此代码是在 Python 中运行的简单 k 分类算法。

最佳答案

你需要import operator到本地命名空间; import KNN 不会同时导入它导入的子模块。

通常,您需要明确说明您使用的所有模块和对象,内置 ( https://docs.python.org/2/library/functions.html ) 除外。

与其他一些语言不同,没有隐式导入。

关于导入的高级提示/社论:您可能想使用 KNN.operator。它在那里可用,因为它是由 KNN 导入的。然而,这几乎总是一个令人遗憾的决定,因为图片令人困惑:这是一个特殊的模块吗?如果是这样,它的界面是什么?保留可爱之处,直截了当。

关于python - 名称错误 : global name 'operator' is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19553091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com