1. 程式人生 > >機器學習之numpy和matplotlib學習(一)

機器學習之numpy和matplotlib學習(一)

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

更新完畢