2017年8月27日 星期日

NUMPY的Array介紹與Matplotlib的繪圖功能

NumPyArray介紹與Matplotlib的繪圖功能

 

1. Array的基本運算:

 

適用於科學和數學運算的NumPy套件中,有一個Array的資料結構。Array是一個非常類似 list 的序列型態。

但是Array 之中的每一個元素都必須是相同型態(相同大小)的;而且Array是固定大小的,不像 Python中的List 一樣可以動態增減。


 使用NumPy套件下的array可以採用下面的用法

 

%pylab inline

my_array = array([2,3,5,4,2])

 

或是

import numpy

my_array = numpy.array([2,3,5,4,2])

 

有時候為了省事,我們也可以在引入numpy套件後並賦予numpy一個較容易輸入的別名(例如np):

import numpy as np

my_array = np.array([2,3,5,4,2])

 

接下來,我們我看array的運算:

 

Ex1: array中每個元素都加上1:


Fig. 01

 

Ex1: array中每個元素都乘上3:


Fig. 02

 

Ex2: 兩個 array的相加與相乘:

Fig. 03

 

Ex3: 兩個array的比較:

Fig. 04

 

Ex4: n rows m columnsarray

Fig. 05

 

2.Matplotlib的繪圖功能:

當我們在指令列中使用 %pylab inline,不但可以使用 NumPy + Matplotlib, 還可以 inline 畫圖。

 

Ex1 X軸為1, 2, 3, 4Y軸為2, 4, 6, 8所畫出的直線(四個坐標點的連線: (1,2), (2,4), (3,6), (4,8))

 

Fig. 06

 

Ex2: 不輸入X座標的值(預設為 0,1,2,…,99)產生100點亂數值來畫圖:

Fig. 07

 

Ex3: 我們利用 x = linspace(0,10,100) 指令,在0~10之間均勻產生100點資料;再以 plot(x, sin(x))畫出對應的sine wave:

Fig. 08

 

Ex4: 承上題,改成用紅色的圓點 (“or”)來畫出sine wave:

Fig. 09

 

Ex5. exp(-x)* sin(x) 的圖形:


Fig. 10

 


 

Python 的控制結構

Python 的控制結構

 

1. For 迴圈:

for 迴圈的控制條件:包含初始值、讓迴圈結束的條件、更新值,其敘述語法如下:
for i in 一個list :
      程式內容
Ex1: 輸入一個[1,2,3,4,5]list並且求取裡面元素的平方值:
Fig. 01
Ex2: 利用range指令來產生list作為for 迴圈的控制條件此處range產生的元素起始值是1, 結束值是5, 且間隔是1:
Fig. 02
Ex3: 輸出1加到100的結果:
Fig. 03
將每次加之後的結果都加入一個命名為my_listList之中:
Fig. 04

Ex4: 利用兩個for迴圈產生九九乘法表的內容:

Fig. 05

2. 選擇結構:

Python if 語法格式如下
if 判斷條件1:

        要處理的指令1

elif 判斷條件2:

        要處理的指令2

elif 判斷條件3:

        要處理的指令3

else:

        要處理的指令4

 

Ex1: 我們使用input()來輸入一個數字,再使用if敘述來判斷所輸入的數字是正整數、0、或是負整數:

Fig. 06

Note: x = int (input()) 表示x這個變數取得的值為整數

 

Ex2. 接續之前的九九乘法表,我們也可以搭配For迴圈和IF敘述來達到使得輸出結果變得整齊的目標:

 

Fig. 07

Note: print(x, end="") 可以得到不換行的輸出效果

 

Ex3: 使用者輸入溫度值(可以是實數),輸出對應的冷熱判斷結果:

Fig. 08

 

 

3. While 迴圈:

Python有兩種迴圈敘述,分別是for 迴圈 (for loop) while 迴圈 (while loop)
for 迴圈與while 迴圈之不同處在於:
while迴圈是根據某個條件是否成立(True False)來決定要不要執行迴圈內的敘述,而for迴圈的控制則是限制一個範圍之內的數值
接下來,我們來看看 while 迴圈的

 

Ex1: 猜數字的遊戲。本題中,程式會先利用亂數產生器產生一個1~10之間的正整數,再由使用者輸入一個數值來進行比較。當使用者猜中亂數數值的話,則結束while迴圈。

Fig. 09

 

當然,我們也可以使用break來強制跳出while迴圈,得到同樣的程式功能:

Fig. 10

NUMPY的Array介紹與Matplotlib的繪圖功能

NumPy 的 Array 介紹與 Matplotlib 的繪圖功能   1. A rray 的基本運算 :   適用於科學和數學運算的 NumPy 套件中,有一個 Array 的資料結構。 Array 是一個非常類似 list 的序列型態。 但是 Arr...