整个教程有参考网上其他一些大牛的看法,总体的教学应该是从numpy和matplotlib开始教学,然后最后进入SK-learn学习,整个课程的代码之后会推送到github上面去。对于教程,采用代码注释的方式,有不知道和有错的问题的话可以在下面评论,我尽量保证每天一更,勿喷!
你没有学过Numpy?没关系
你没有学过matplotlib?没关系##
一起学习机器学习系列##
今天先来学一个Numpy产生等差数列的一个函数。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : SundayCoder-俊勇
# @File : linspacelearn.py
import numpy as np
# np.linspace函数的解释:
# np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
# 参数解释:
# start,stop是开始,结束的数字;
# num是生成多少个数字,默认50个;
# endpoint是最后一个stop数字是否包含进去,默认包含;
# retstep,是两个数字间的间距,默认不显示;
# dtype默认。
# np.linspace(start,end,num), 产生一等差数组,一共产生num个数,
# 等差系数d=(end-start)/(num-1)
# 真正的代码就只有下面一行。
x=np.linspace(0,1,10)
#打印一下X
print x
这里写图片描述
结果中的等差d你有没有自己验证是不是对的?
这里最后一个点1.0包含进去了是因为endpoint这个参数是默认包含。
试一下不默认包含。
只需要把上面代码x=np.linspace(0,1,10)
变成下面的代码
x=np.linspace(0,1,10,endpoint=False)
此时在打印一下X。结果如下:
这里写图片描述
这时候不一样X不一样了。
对比两次的结果,发现参数的数的个数都是10个,第一个等差数列包含1.0,第二个没有。同时两个等差数列都不相同了。
第一个等差系数d=(end-start)/(num-1)
第二个等差系数d=(end-start)/(num)
因为这里去掉和不包含末尾的那个数,所以不用减一,否则减一
再来看看 retstep,是两个数字间的间距,默认不显示;
只需要把上面代码x=np.linspace(0,1,10,endpoint=False)
变成下面的代码
x=np.linspace(0,1,10,endpoint=False,retstep=True)
再来打印X
这里写图片描述
这里打印的除了这个数组,还帮你把等差系数d给打印出来了。
所以retstep这个参数其实就是要不要显示等差系数d的值而已。
网友评论