機器學習之numpy和matplotlib學習(一)
阿新 • • 發佈:2018-12-25
整個教程有參考網上其他一些大牛的看法,總體的教學應該是從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的值而已。