当您在函数内部分配一个新值时L
,您实际上是在创建一个独立L
于函数外部的新变量(它永远不会改变并保持为零)。如果您希望能够在函数之外访问此值,return
则:
def confusionmatrix(target, prediction):
L = 0
dataframe=creatematrixnull(target)
for i in range(len(target)):
dataframe[target[i]][prediction[i]]+=1
L=L+1
return dataframe, L
df, L = confusionmatrix(target, prediction) # you need to actually call the function!
print(L)
但是,在这种情况下,您实际上不需要返回L
,因为它始终与len(target)
. 编写此函数并随后获取 L 的更简单方法是:
def confusionmatrix(target, prediction):
dataframe = creatematrixnull(target)
for t, p in zip(target, prediction):
dataframe[t][p] += 1
return dataframe
df = confusionmatrix(target, prediction)
L = len(target)
print(L)
请注意,迭代t, p in zip(target, prediction)
为您提供与通过迭代获得的值相同的值target[i]
和prediction[i]
(作为t
和p
)i in range(len(target))
。