鸢尾花书《编程不难》02---学习书本里面的三个案例
文章目录
- 1.引言
- 2.第一个例子---模拟硬币的投掷结果
- 3.第二个例子---混合两个一元高斯分布的随机数
- 4.第三个例子---线性回归的作图
- 5.关于书中的问题的解决方案
1.引言
今天的这个文章主要是阅读学习鸢尾花书系列的第一本《编程不难》,今天主要是记录下书里面的两个例子,因为某些原因,这个Github上面提供的代码有些问题,所以这篇文章也涉及到我对于这个问题的解决方案,主要是记录下这个学习的过程;
下面的这个是我学习的第一个例子:
下面的这个是学习书里面的第二个例子:
我下面用到的代码都是来自于图书作者的Github官方账号,想伙伴们可以去Github平台的作者的仓库进行获取;
2.第一个例子—模拟硬币的投掷结果
导入相关的库:
确定硬币的投掷的次数,并且定义数组存储实验的最终结果:
通过循环记录得到的结果,并且进行可视化:
3.第二个例子—混合两个一元高斯分布的随机数
下面的是生成随机数据,进行随机组合,绘制直方图:
可视化的结果:表示不同数值对应的频数,他们的相加求和就是1000,这个纵坐标denisity翻译就是密度,对应我们的实际问题就是这个值出现的次数;
4.第三个例子—线性回归的作图
下面的是生成数据,调用scatter绘制散点图的结果;
在这个过程中添加了噪声,所以这个数据的点看起来比较凌乱;
下面的是调用regress求解线性回归方程的作图(这个也是我认为书里面的错误吧,后面我会介绍这个地方以及我自己的解决的方案);
5.关于书中的问题的解决方案
这个书里面也不算是错误吧,反正在我的这个jupyter上面是跑不通的,所以我查了资料对于这个地方进行了修改;
不同之处有两个地方(左边是我修改之后的,右边儿是Github上面作者提供的):
1)导入的包:作者导入的是statistics这个包,我换成了scipy里面的一个;
2)函数的返回值的处理和函数的调用,作者直接使用liner_regress这个函数,我使用的是lingress函数,还有就是返回值的问题,我在原来的基础上加上了一个*rest用来处理其他的返回值结果;
如果您遇到了和我一样的问题,不妨按照我的方式解决一下,或许可以成功,因为这个取决于我们的环境和解释器诸多因素,以上就是我的解决方案;