整個教程有參考網上其他一些大牛的看法,總體的教學應該是從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的值而已。