基于Python3.7对《数据科学技术与应用》(电工2018版)做出的批注及“错误”指出(更新于2021.04.11)


前言

在学习课程"数据科学技术与应用"的过程中,由于所用教材中的示例所基于的Python版本过久,而导致教材提供的小部分Function在Python3.6及更高版本中无法使用或名称改变,本文章将基于Python3.7版本,对这些“错误”做出指正(并将在所有可能存在的“错误”整理完毕后,统一e-mail给主编),同时在此记录下我学习过程中所做的所有批注


提示:以下是本篇文章正文内容,下面案例可供参考

一、"错误"指正

1.Matplotlib画直方图报错 AttributeError: ’Rectangle’ object has no property ‘normed’

坐标:“第4章 数据可视化”—“4.2 可视化数据探索”—“4.2.1 绘制常用图形”—“5.直方图”(P73)—“参数说明”—“normed”

在使用Pandas画直方图时,如下:

values.hist(bins=100, alpha=0.3, color='k', normed=True)

运行代码时,出现下面的错误提示:

AttributeError:'Rectangle' object has no property 'normed'

问题出现原因及解决方法

这是因为在新版的pandas库中已经没有定义这个属性了

  1. 可以去掉这个属性,即
    values.hist(bins=100, alpha=0.3, color=‘k’)
  2. 也可以用density属性替代,即
    values.hist(bins=100, alpha=0.3, color=‘k’,density=True)

注释:属性 normed / density 用于设置是否标准化直方图,默认值为False。

  1. 当density = False 时,数据 values 输出密度图(即,数据按概率密度分布)(见下图一);
  2. 当density = True 时,数据 values 输出直方图(见下图二)

图一
图二

2.自scikit-learn 0.18版本不再使用的cross_validation

坐标:“第5章 机器学习”—“5.2.3 回归分析性能评估”—“例5-2”

当我们输入一下代码时,会分别出现以下错误:

from sklearn import cross_validation

DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
from sklearn.cross_validation import *

ModuleNotFoundError: No module named 'sklearn.cross_validation'

问题出现原因及解决方法

自scikit-learn 0.18版本不再使用的cross_validation,并将在0.20版本中彻底去除cross_validation
我们只需将cross_validation改为model_selection即可

二、批注




总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

猜你喜欢

转载自blog.csdn.net/A_No2Tang/article/details/115606484