在我的代码的一部分中,我有以下内容:
plt.plot(range(1, len(ppn.errors_) +1), ppn.errors_, marker = 'o')
其中ppn.errors_是一个向量。这行代码的含义是什么?(考虑到数字1?
ppn = Perceptron(eta = 0.1, n_iter = 10)ppn.fit(X, y) plt.plot(range(1, len(ppn.errors_) +1), ppn.errors_, marker = 'o')plt.xlabel('Epoch')plt.ylabel('Number of updates')plt.show()
回答:
len()
会返回可迭代对象的大小,因此在这种情况下,len(ppn.errors_)
是向量的尺寸(元素/维度的数量)。
range(a,b)
会生成从 a(包含)到 b(不包含)的数字范围。
因此,range(1, len(ppn.errors_) +1)
是一个从 1 开始,到向量 ppn.errors_
的长度/尺寸结束的值范围。
假设 ppn.errors_ = [7,8,9,10]
,那么:
len(ppn.errors_) = 4
range(1, len(ppn.errors_) +1) = range(1, 4+1) = range(1,5)
其中 range(1,5)
是范围 [1, 2, 3, 4]