整個(gè)教程有參考網(wǎng)上其他一些大牛的看法,總體的教學(xué)應(yīng)該是從numpy和matplotlib開始教學(xué),然后最后進(jìn)入SK-learn學(xué)習(xí),整個(gè)課程的代碼之后會推送到github上面去。對于教程,采用代碼注釋的方式,有不知道和有錯(cuò)的問題的話可以在下面評論,我盡量保證每天一更,勿噴!
你沒有學(xué)過Numpy?沒關(guān)系
你沒有學(xué)過matplotlib?沒關(guān)系##
一起學(xué)習(xí)機(jī)器學(xué)習(xí)系列##
今天先來學(xué)一個(gè)Numpy產(chǎn)生等差數(shù)列的一個(gè)函數(shù)。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : SundayCoder-俊勇
# @File : linspacelearn.py
import numpy as np
# np.linspace函數(shù)的解釋:
# np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
# 參數(shù)解釋:
# start,stop是開始,結(jié)束的數(shù)字;
# num是生成多少個(gè)數(shù)字,默認(rèn)50個(gè);
# endpoint是最后一個(gè)stop數(shù)字是否包含進(jìn)去,默認(rèn)包含;
# retstep,是兩個(gè)數(shù)字間的間距,默認(rèn)不顯示;
# dtype默認(rèn)。
# np.linspace(start,end,num), 產(chǎn)生一等差數(shù)組,一共產(chǎn)生num個(gè)數(shù),
# 等差系數(shù)d=(end-start)/(num-1)
# 真正的代碼就只有下面一行。
x=np.linspace(0,1,10)
#打印一下X
print x
結(jié)果中的等差d你有沒有自己驗(yàn)證是不是對的?
這里最后一個(gè)點(diǎn)1.0包含進(jìn)去了是因?yàn)閑ndpoint這個(gè)參數(shù)是默認(rèn)包含。
試一下不默認(rèn)包含。
只需要把上面代碼x=np.linspace(0,1,10)
變成下面的代碼
x=np.linspace(0,1,10,endpoint=False)
此時(shí)在打印一下X。結(jié)果如下:
這時(shí)候不一樣X不一樣了。
對比兩次的結(jié)果,發(fā)現(xiàn)參數(shù)的數(shù)的個(gè)數(shù)都是10個(gè),第一個(gè)等差數(shù)列包含1.0,第二個(gè)沒有。同時(shí)兩個(gè)等差數(shù)列都不相同了。
第一個(gè)等差系數(shù)d=(end-start)/(num-1)
第二個(gè)等差系數(shù)d=(end-start)/(num)
因?yàn)檫@里去掉和不包含末尾的那個(gè)數(shù),所以不用減一,否則減一
再來看看 retstep,是兩個(gè)數(shù)字間的間距,默認(rèn)不顯示;
只需要把上面代碼x=np.linspace(0,1,10,endpoint=False)
變成下面的代碼
x=np.linspace(0,1,10,endpoint=False,retstep=True)
再來打印X
這里打印的除了這個(gè)數(shù)組,還幫你把等差系數(shù)d給打印出來了。
所以retstep這個(gè)參數(shù)其實(shí)就是要不要顯示等差系數(shù)d的值而已。