matplotlib 不支持生成器作为输入

Art*_*1se 3 python generator matplotlib python-3.x ensemble-learning

我正在此站点https://github.com/vsmolyakov/experiments_with_python/blob/master/chp01/ensemble_methods.ipynb上运行 Python 2 笔记本, 以使用 python 练习集成方法,并在运行这部分代码时出现错误Python 3:

plt.figure()
(_, caps, _) = plt.errorbar(num_est, bg_clf_cv_mean, yerr=bg_clf_cv_std, c='blue', fmt='-o', capsize=5)
for cap in caps:
    cap.set_markeredgewidth(1)                                                                                                                                
plt.ylabel('Accuracy'); plt.xlabel('Ensemble Size'); plt.title('Bagging Tree Ensemble');
plt.show()
Run Code Online (Sandbox Code Playgroud)

错误是“matplotlib不支持生成器作为输入”解决方案是什么?

Imp*_*est 5

在该示例中有一行num_est = map(int, np.linspace(1,100,20))。这会在 python 2.7 中生成一个列表。但在 python 3 中它只是一个生成器。无论如何,地图很奇怪,所以我建议将该行替换为

num_est = np.linspace(1,100,20).astype(int)
Run Code Online (Sandbox Code Playgroud)