SlideShare a Scribd company logo
12 NumPy 套件(二)
迴歸直線:最小平方法 (一)
19
 最小平方法是統計學上分析數據經常用到的方法,其目的是要在平面
空間上找尋某函數使得此函數最足以代表平面上所有的資料點。在實
際的應用上,函數通常為直線函數或者為指數函數,以下我們以直線
來說明:
12 NumPy 套件(二)
迴歸直線:最小平方法 (二)
20
+ bn =
+ b =
在以下程式我們利用函式設定 n 個傾斜並呈現帶狀分佈座標點,之後迴歸直線的運算
很簡單。本程式所用到的 randint、sin、 cos 等函式都是在 numpy 套件內。
12 NumPy 套件(二)
迴歸直線:最小平方法 (三)
21
import pylab
import numpy as np
def main() :
# 資料點數量
n = np.random.randint(30,50)
# 產生呈現傾斜帶狀的 n 個數據
xs , ys = beltdata(n)
pylab.figure(facecolor=’white’)
c11 = sum(xs)
c12 = n
c13 = sum(ys)
c21 = sum(xs**2)
c22 = c11
c23 = sum(xs*ys)
det = c11*c22 - c21*c12
det1 = c13*c22 - c23*c12
det2 = c11*c23 - c21*c13
a = det1/det
b = det2/det
x1 , x2 = min(xs) , max(xs)
y1 , y2 = a*x1+b , a*x2+b
# 畫數據點
pylab.scatter(xs,ys)
# 畫迴歸線
pylab.plot( (x1,x2) , (y1,y2) , color=’red’ )
# 標示 X Y 與 圖案標題
pylab.xlabel("X")
pylab.ylabel("Y")
pylab.title("regression line using least
squares method",color=’red’)
line = "Y = {:>5.2f} X + {:>5.2f}".format(a,b)
x3 = (x1+x2)/2
y3 = a*x3+b
12 NumPy 套件(二)
迴歸直線:最小平方法 (四)
22
# 標示迴歸線圖示
pylab.annotate(line, xy=(x3+0.1,y3-0.1), fontsize=14, color=’red’,
arrowprops=dict(color=’green’,width=0.1,headwidth=5),
xytext=(x3+2,y1))
pylab.show()
# 產生 n 個帶狀分佈點,並使之傾斜
def beltdata(n) :
# xs:[1,2,...,n]
xs = np.linspace(1,n,n)
c = np.random.randint(0,2)
# ys:[0,1] 之間浮點數,共有 n 個點
ys = np.array( [ np.random.randint(0,100)/10 + c for i in range(n) ] )
# 旋轉角度
ang = np.pi/np.random.randint(3,10)
# 旋轉帶狀的點
xs , ys = np.cos(ang)*xs - np.sin(ang)*ys , np.sin(ang)*xs + np.cos(ang)*ys
return xs , ys
main()
12 NumPy 套件(二)
迴歸直線:最小平方法 (五)
23
輸出的圖形為:
12 NumPy 套件(二)
Bezier 曲線 (一)
24
12 NumPy 套件(二)
Bezier 曲線 (二)
25
12 NumPy 套件(二)
Bezier 曲線 (三)
26
 以下座標點是描述米老鼠的頭部圖形的二次 Bizier 曲線點:
12 NumPy 套件(二)
Bezier 曲線 (四)
27
import numpy as np
import pylab
# 設定每個欄位的資料名稱與型別
dtypes = np.dtype( [(’x’,’f8’),
(’y’,’f8’)] )
# 讀檔
pts = np.loadtxt("micky.dat",dtype=dtypes)
npts = len(pts)
# 取出 x 與 y 座標
ptx , pty = pts[’x’] , pts[’y’]
# 每段曲線共有 n 個點與設定參數 ts
n = 21
ts = np.linspace(0,1,n)
# 設定圖形周邊區域為 白色
pylab.figure(facecolor=’white’)
xmin , xmax = 1000 , 0
ymin , ymax = 1000 , 0
# 每段包含三個點
for i in range(0,npts-1,2) :
# 二次 Bezier curve:使用向量式運算
bxs = (1-ts)**2 * ptx[i] + 2*ts*(1-ts)
* ptx[i+1] + ts**2 * ptx[i+2]
bys = (1-ts)**2 * pty[i] + 2*ts*(1-ts)
* pty[i+1] + ts**2 * pty[i+2]
x1 , y1 = bxs.min() , bys.min()
x2 , y2 = bxs.max() , bys.max()
if x1 < xmin : xmin = x1
if y1 < ymin : ymin = y1
if x2 > xmax : xmax = x2
if y2 > ymax : ymax = y2
# 讓線寬為 5 點
pylab.plot(bxs,bys,’r’,linewidth=5)
ds = 10
# 顯示格線
pylab.grid()
# 設定 x 軸與 y 軸的顯示範圍
pylab.xlim(xmin-ds,xmax+ds)
pylab.ylim(ymin-ds,ymax+ds)
# 產生 jpg 圖檔
pylab.savefig(’micky.jpg’)
pylab.show()
12 NumPy 套件(二)
Bezier 曲線 (五)
28
 圖左是直接連接米老鼠頭部上的端點所構成的圖形,
圖右是使用二次 Bezier 曲線所產生的圖形。
在實際應用上,每一段 Bezier 曲線的控制點通常是利用滑鼠/觸控筆直接
在螢幕上決定,一旦設定了控制點,此條 Bezier 曲線也可立即看到,整個
圖案就是由許多段曲線連接在一起,如此設計圖案就變得是尋找各段曲線控
制點的位置。

More Related Content

What's hot

Ch10 習題
Ch10 習題Ch10 習題
Ch10 習題
hungchiayang1
 
Ch4 教學
Ch4 教學Ch4 教學
Ch4 教學
hungchiayang1
 
Ch8 教學
Ch8 教學Ch8 教學
Ch8 教學
hungchiayang1
 
Ch6 教學
Ch6 教學Ch6 教學
Ch6 教學
hungchiayang1
 
Ch2 教學
Ch2 教學Ch2 教學
Ch2 教學
hungchiayang1
 
Appendix B 教學
Appendix B 教學Appendix B 教學
Appendix B 教學
hungchiayang1
 
Ch10 範例
Ch10 範例Ch10 範例
Ch10 範例
hungchiayang1
 
Python p.193 197
Python p.193 197Python p.193 197
Python p.193 197
hungchiayang1
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
hungchiayang1
 
Ch10 教學
Ch10 教學Ch10 教學
Ch10 教學
hungchiayang1
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
hungchiayang1
 
Ppt 167-173
Ppt 167-173Ppt 167-173
Ppt 167-173
hungchiayang1
 
Ch7 範例
Ch7 範例Ch7 範例
Ch7 範例
hungchiayang1
 
Ppt 138-142
Ppt 138-142Ppt 138-142
Ppt 138-142
hungchiayang1
 
Appendix A 教學
Appendix A 教學Appendix A 教學
Appendix A 教學
hungchiayang1
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
hungchiayang1
 
Ch7 教學
Ch7 教學Ch7 教學
Ch7 教學
hungchiayang1
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
hungchiayang1
 
Ppt 1-25
Ppt 1-25Ppt 1-25
Ppt 1-25
hungchiayang1
 
P127 135 new
P127 135 newP127 135 new
P127 135 new
hungchiayang1
 

What's hot (20)

Ch10 習題
Ch10 習題Ch10 習題
Ch10 習題
 
Ch4 教學
Ch4 教學Ch4 教學
Ch4 教學
 
Ch8 教學
Ch8 教學Ch8 教學
Ch8 教學
 
Ch6 教學
Ch6 教學Ch6 教學
Ch6 教學
 
Ch2 教學
Ch2 教學Ch2 教學
Ch2 教學
 
Appendix B 教學
Appendix B 教學Appendix B 教學
Appendix B 教學
 
Ch10 範例
Ch10 範例Ch10 範例
Ch10 範例
 
Python p.193 197
Python p.193 197Python p.193 197
Python p.193 197
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
 
Ch10 教學
Ch10 教學Ch10 教學
Ch10 教學
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 
Ppt 167-173
Ppt 167-173Ppt 167-173
Ppt 167-173
 
Ch7 範例
Ch7 範例Ch7 範例
Ch7 範例
 
Ppt 138-142
Ppt 138-142Ppt 138-142
Ppt 138-142
 
Appendix A 教學
Appendix A 教學Appendix A 教學
Appendix A 教學
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
 
Ch7 教學
Ch7 教學Ch7 教學
Ch7 教學
 
Ppt 51-77
Ppt 51-77Ppt 51-77
Ppt 51-77
 
Ppt 1-25
Ppt 1-25Ppt 1-25
Ppt 1-25
 
P127 135 new
P127 135 newP127 135 new
P127 135 new
 

Similar to Ch12 範例

Python - Matplotlib basic - v01
Python - Matplotlib basic - v01Python - Matplotlib basic - v01
Python - Matplotlib basic - v01
ssuser5e7722
 
Num py basic(2) - v01
Num py   basic(2) - v01Num py   basic(2) - v01
Num py basic(2) - v01
ssuser5e7722
 
ncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptxncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptx
NCU MCL
 
SymPy在微積分上的應用.ppt
SymPy在微積分上的應用.pptSymPy在微積分上的應用.ppt
SymPy在微積分上的應用.ppt
mclmath
 
ncuma_pylab.pptx
ncuma_pylab.pptxncuma_pylab.pptx
ncuma_pylab.pptx
NCU MCL
 
蒙地卡羅模擬與志願運算
蒙地卡羅模擬與志願運算蒙地卡羅模擬與志願運算
蒙地卡羅模擬與志願運算
Yuan CHAO
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
Jamie (Taka) Wang
 
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
dennis zhuang
 
Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Python入門:5大概念初心者必備
Python入門:5大概念初心者必備
Derek Lee
 

Similar to Ch12 範例 (13)

Python - Matplotlib basic - v01
Python - Matplotlib basic - v01Python - Matplotlib basic - v01
Python - Matplotlib basic - v01
 
Ch11
Ch11Ch11
Ch11
 
Num py basic(2) - v01
Num py   basic(2) - v01Num py   basic(2) - v01
Num py basic(2) - v01
 
ncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptxncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptx
 
Ch12
Ch12Ch12
Ch12
 
SymPy在微積分上的應用.ppt
SymPy在微積分上的應用.pptSymPy在微積分上的應用.ppt
SymPy在微積分上的應用.ppt
 
ncuma_pylab.pptx
ncuma_pylab.pptxncuma_pylab.pptx
ncuma_pylab.pptx
 
Ch5
Ch5Ch5
Ch5
 
蒙地卡羅模擬與志願運算
蒙地卡羅模擬與志願運算蒙地卡羅模擬與志願運算
蒙地卡羅模擬與志願運算
 
Ch5
Ch5Ch5
Ch5
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
 
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
 
Python入門:5大概念初心者必備
Python入門:5大概念初心者必備Python入門:5大概念初心者必備
Python入門:5大概念初心者必備
 

More from hungchiayang1

Exercise 1 3
Exercise 1 3Exercise 1 3
Exercise 1 3
hungchiayang1
 
Python differential equation
Python differential equationPython differential equation
Python differential equation
hungchiayang1
 
化學系 python 習題
化學系 python 習題化學系 python 習題
化學系 python 習題
hungchiayang1
 
化學系 python 練習
化學系 python 練習化學系 python 練習
化學系 python 練習
hungchiayang1
 
化學系 python 教學
化學系 python 教學化學系 python 教學
化學系 python 教學
hungchiayang1
 
Ppt 151-151
Ppt 151-151Ppt 151-151
Ppt 151-151
hungchiayang1
 
Ppt 136-136
Ppt 136-136Ppt 136-136
Ppt 136-136
hungchiayang1
 
Ppt 143-143
Ppt 143-143Ppt 143-143
Ppt 143-143
hungchiayang1
 
Ppt 137-137
Ppt 137-137Ppt 137-137
Ppt 137-137
hungchiayang1
 
Ppt 150-150
Ppt 150-150Ppt 150-150
Ppt 150-150
hungchiayang1
 
Ppt 26-50
Ppt 26-50Ppt 26-50
Ppt 26-50
hungchiayang1
 
Ppt 145-149
Ppt 145-149Ppt 145-149
Ppt 145-149
hungchiayang1
 
Ppt 174-174
Ppt 174-174Ppt 174-174
Ppt 174-174
hungchiayang1
 
Ppt 144-144
Ppt 144-144Ppt 144-144
Ppt 144-144
hungchiayang1
 
Ppt 152-155
Ppt 152-155Ppt 152-155
Ppt 152-155
hungchiayang1
 
Ppt 156-156
Ppt 156-156Ppt 156-156
Ppt 156-156
hungchiayang1
 
Ppt 166-166
Ppt 166-166Ppt 166-166
Ppt 166-166
hungchiayang1
 
Ppt 165-165
Ppt 165-165Ppt 165-165
Ppt 165-165
hungchiayang1
 
Ppt 157-157
Ppt 157-157Ppt 157-157
Ppt 157-157
hungchiayang1
 
Ppt 175-175
Ppt 175-175Ppt 175-175
Ppt 175-175
hungchiayang1
 

More from hungchiayang1 (20)

Exercise 1 3
Exercise 1 3Exercise 1 3
Exercise 1 3
 
Python differential equation
Python differential equationPython differential equation
Python differential equation
 
化學系 python 習題
化學系 python 習題化學系 python 習題
化學系 python 習題
 
化學系 python 練習
化學系 python 練習化學系 python 練習
化學系 python 練習
 
化學系 python 教學
化學系 python 教學化學系 python 教學
化學系 python 教學
 
Ppt 151-151
Ppt 151-151Ppt 151-151
Ppt 151-151
 
Ppt 136-136
Ppt 136-136Ppt 136-136
Ppt 136-136
 
Ppt 143-143
Ppt 143-143Ppt 143-143
Ppt 143-143
 
Ppt 137-137
Ppt 137-137Ppt 137-137
Ppt 137-137
 
Ppt 150-150
Ppt 150-150Ppt 150-150
Ppt 150-150
 
Ppt 26-50
Ppt 26-50Ppt 26-50
Ppt 26-50
 
Ppt 145-149
Ppt 145-149Ppt 145-149
Ppt 145-149
 
Ppt 174-174
Ppt 174-174Ppt 174-174
Ppt 174-174
 
Ppt 144-144
Ppt 144-144Ppt 144-144
Ppt 144-144
 
Ppt 152-155
Ppt 152-155Ppt 152-155
Ppt 152-155
 
Ppt 156-156
Ppt 156-156Ppt 156-156
Ppt 156-156
 
Ppt 166-166
Ppt 166-166Ppt 166-166
Ppt 166-166
 
Ppt 165-165
Ppt 165-165Ppt 165-165
Ppt 165-165
 
Ppt 157-157
Ppt 157-157Ppt 157-157
Ppt 157-157
 
Ppt 175-175
Ppt 175-175Ppt 175-175
Ppt 175-175
 

Recently uploaded

20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf
20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf
20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf
jhujyunjhang
 
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
ssuserd66db11
 
20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf
20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf
20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf
jhujyunjhang
 
20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf
20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf
20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf
jhujyunjhang
 
20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf
20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf
20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf
jhujyunjhang
 
20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf
20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf
20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf
jhujyunjhang
 
根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx
根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx
根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx
OOJIANHANGMoe
 
20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf
20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf
20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf
jhujyunjhang
 
20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf
20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf
20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf
jhujyunjhang
 
20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf
20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf
20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf
jhujyunjhang
 
台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613
台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613
台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613
趙 亨利
 
2024-06-14 師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf
2024-06-14  師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf2024-06-14  師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf
2024-06-14 師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf
Taiwan AI Academy
 
20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf
20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf
20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf
jhujyunjhang
 
20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf
20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf
20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf
jhujyunjhang
 
🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】
🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】
🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】
微信 tytyqqww业务接单
 
APII - interview notes 2024 for ogcio latest version
APII - interview notes 2024 for ogcio latest versionAPII - interview notes 2024 for ogcio latest version
APII - interview notes 2024 for ogcio latest version
digimen08
 
20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf
20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf
20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf
jhujyunjhang
 

Recently uploaded (17)

20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf
20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf
20240520-敏感資料處理原則-柯智仁.pptx.pdf_20240520-敏感資料處理原則-柯智仁.pptx.pdf
 
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
113學年度國中教育會考寫作測驗六級分樣卷、113學年度國中教育會考寫作測驗六級分樣卷
 
20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf
20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf
20230513-datapaper-何芷蔚.pdf_20230513-datapaper-何芷蔚.pdf
 
20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf
20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf
20220325-如何下載與引用資料-柯智仁.pdf_20220325-如何下載與引用資料-柯智仁.pdf
 
20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf
20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf
20230913 資料發布類型-陳建文.pdf_20230913 資料發布類型-陳建文.pdf
 
20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf
20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf
20230913-開放資料流程-柯智仁.pdf_20230913-開放資料流程-柯智仁.pdf
 
根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx
根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx
根据课文训练学生习写《可以喝的书》,丙组作文也是一篇供料作文,满分为十分.pptx
 
20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf
20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf
20240522-如何下載與引用TBIA資料-張俊怡.pdf_20240522-如何下載與引用TBIA資料-張俊怡.pdf
 
20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf
20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf
20240520-TaiBIF和GBIF介紹-劉璟儀.pdf_20240520-TaiBIF和GBIF介紹-劉璟儀.pdf
 
20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf
20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf
20240521-資料清理-OpenRefine-劉璟儀.pdf_20240521-資料清理-OpenRefine-劉璟儀.pdf
 
台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613
台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613
台科大史懷哲團隊研習課程(專題課程發展分享 以Arduino專案實作出發)20240613
 
2024-06-14 師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf
2024-06-14  師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf2024-06-14  師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf
2024-06-14 師大_AI 新浪潮下的產業人才培育_90 mins_蔡明順.pdf
 
20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf
20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf
20230913-資料標準-劉璟儀.pdf_20230913-資料標準-劉璟儀.pdf
 
20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf
20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf
20240521-開放資料的前置準備與清理-楊富鈞.pdf_20240521-開放資料的前置準備與清理-楊富鈞.pdf
 
🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】
🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】
🎉黑客改成绩,只需1小时! 想知道学霸的秘诀吗?跟着我们一起来揭秘吧~ 🤔💡 #技术分享 #考试技巧 #快速提分【微信:oojjiijj】
 
APII - interview notes 2024 for ogcio latest version
APII - interview notes 2024 for ogcio latest versionAPII - interview notes 2024 for ogcio latest version
APII - interview notes 2024 for ogcio latest version
 
20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf
20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf
20220317-開放授權規範-林誠夏.pdf_20220317-開放授權規範-林誠夏.pdf
 

Ch12 範例

  • 1. 12 NumPy 套件(二) 迴歸直線:最小平方法 (一) 19  最小平方法是統計學上分析數據經常用到的方法,其目的是要在平面 空間上找尋某函數使得此函數最足以代表平面上所有的資料點。在實 際的應用上,函數通常為直線函數或者為指數函數,以下我們以直線 來說明:
  • 2. 12 NumPy 套件(二) 迴歸直線:最小平方法 (二) 20 + bn = + b = 在以下程式我們利用函式設定 n 個傾斜並呈現帶狀分佈座標點,之後迴歸直線的運算 很簡單。本程式所用到的 randint、sin、 cos 等函式都是在 numpy 套件內。
  • 3. 12 NumPy 套件(二) 迴歸直線:最小平方法 (三) 21 import pylab import numpy as np def main() : # 資料點數量 n = np.random.randint(30,50) # 產生呈現傾斜帶狀的 n 個數據 xs , ys = beltdata(n) pylab.figure(facecolor=’white’) c11 = sum(xs) c12 = n c13 = sum(ys) c21 = sum(xs**2) c22 = c11 c23 = sum(xs*ys) det = c11*c22 - c21*c12 det1 = c13*c22 - c23*c12 det2 = c11*c23 - c21*c13 a = det1/det b = det2/det x1 , x2 = min(xs) , max(xs) y1 , y2 = a*x1+b , a*x2+b # 畫數據點 pylab.scatter(xs,ys) # 畫迴歸線 pylab.plot( (x1,x2) , (y1,y2) , color=’red’ ) # 標示 X Y 與 圖案標題 pylab.xlabel("X") pylab.ylabel("Y") pylab.title("regression line using least squares method",color=’red’) line = "Y = {:>5.2f} X + {:>5.2f}".format(a,b) x3 = (x1+x2)/2 y3 = a*x3+b
  • 4. 12 NumPy 套件(二) 迴歸直線:最小平方法 (四) 22 # 標示迴歸線圖示 pylab.annotate(line, xy=(x3+0.1,y3-0.1), fontsize=14, color=’red’, arrowprops=dict(color=’green’,width=0.1,headwidth=5), xytext=(x3+2,y1)) pylab.show() # 產生 n 個帶狀分佈點,並使之傾斜 def beltdata(n) : # xs:[1,2,...,n] xs = np.linspace(1,n,n) c = np.random.randint(0,2) # ys:[0,1] 之間浮點數,共有 n 個點 ys = np.array( [ np.random.randint(0,100)/10 + c for i in range(n) ] ) # 旋轉角度 ang = np.pi/np.random.randint(3,10) # 旋轉帶狀的點 xs , ys = np.cos(ang)*xs - np.sin(ang)*ys , np.sin(ang)*xs + np.cos(ang)*ys return xs , ys main()
  • 6. 12 NumPy 套件(二) Bezier 曲線 (一) 24
  • 7. 12 NumPy 套件(二) Bezier 曲線 (二) 25
  • 8. 12 NumPy 套件(二) Bezier 曲線 (三) 26  以下座標點是描述米老鼠的頭部圖形的二次 Bizier 曲線點:
  • 9. 12 NumPy 套件(二) Bezier 曲線 (四) 27 import numpy as np import pylab # 設定每個欄位的資料名稱與型別 dtypes = np.dtype( [(’x’,’f8’), (’y’,’f8’)] ) # 讀檔 pts = np.loadtxt("micky.dat",dtype=dtypes) npts = len(pts) # 取出 x 與 y 座標 ptx , pty = pts[’x’] , pts[’y’] # 每段曲線共有 n 個點與設定參數 ts n = 21 ts = np.linspace(0,1,n) # 設定圖形周邊區域為 白色 pylab.figure(facecolor=’white’) xmin , xmax = 1000 , 0 ymin , ymax = 1000 , 0 # 每段包含三個點 for i in range(0,npts-1,2) : # 二次 Bezier curve:使用向量式運算 bxs = (1-ts)**2 * ptx[i] + 2*ts*(1-ts) * ptx[i+1] + ts**2 * ptx[i+2] bys = (1-ts)**2 * pty[i] + 2*ts*(1-ts) * pty[i+1] + ts**2 * pty[i+2] x1 , y1 = bxs.min() , bys.min() x2 , y2 = bxs.max() , bys.max() if x1 < xmin : xmin = x1 if y1 < ymin : ymin = y1 if x2 > xmax : xmax = x2 if y2 > ymax : ymax = y2 # 讓線寬為 5 點 pylab.plot(bxs,bys,’r’,linewidth=5) ds = 10 # 顯示格線 pylab.grid() # 設定 x 軸與 y 軸的顯示範圍 pylab.xlim(xmin-ds,xmax+ds) pylab.ylim(ymin-ds,ymax+ds) # 產生 jpg 圖檔 pylab.savefig(’micky.jpg’) pylab.show()
  • 10. 12 NumPy 套件(二) Bezier 曲線 (五) 28  圖左是直接連接米老鼠頭部上的端點所構成的圖形, 圖右是使用二次 Bezier 曲線所產生的圖形。 在實際應用上,每一段 Bezier 曲線的控制點通常是利用滑鼠/觸控筆直接 在螢幕上決定,一旦設定了控制點,此條 Bezier 曲線也可立即看到,整個 圖案就是由許多段曲線連接在一起,如此設計圖案就變得是尋找各段曲線控 制點的位置。