iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0
AI & Data

實實在在地學習人工智慧-基礎理論探討與經典案例實作系列 第 10

【Day 10】開始寫程式拉!第二站:Python基礎介紹(2/2)

  • 分享至 

  • twitterImage
  •  

今天是python基礎指令介紹的第二天,繼續把它學起來!

資料型態查詢及轉換

我們在實作機器學習案例時,很重要的一步就是要先了解資料,所以這邊我們先介紹資料型態查詢以及轉換型態。如果型態不相符可能會造成程式錯誤。
先來看程式碼:

number = 6
name = "John"
print(type(number)) #type()可以知道資料型態
print(type(name)) 
print(name+" likes "+str(number)) 

1.+可以直接連接字串
2.str()可將資料型態轉換成字串(若是這裡不轉換,會出現error,因為int不能和string直接合體)
輸出:

<class 'int'>
<class 'str'>
John likes 6

基礎的那些陳述式

迴圈陳述式(for)

語法:
for 變數 in 限制:
   動作
else:
   動作
1.例子:

for i in [1,2,3,4,5]:
    print(i)
print("*"*30)
for k in "John":
    print(k)

輸出:

1
2
3
4
5
******************************
J
o
h
n

2.加上range函數:
先說說range的用法是: range(開始, 停止[, 步長])

for i in range(3): #只有輸入一個數字的話,默認從0開始,步伐為1
    print(i)
print("*"*30)
for k in range(5,10,2): #從5開始到10,兩格數一次
    print(k)

輸出:

0
1
2
******************************
5
7
9

條件陳述式(if/elif)

語法:
if 條件:
   動作
elif 條件2:
   動作2
else:
   動作3
例子:

key = "John"

if key == "Jason":
    print("wrong")
elif key == "John":
    print("right")

輸出:

right

函數(function)

定義函數的方式是,以def開頭,後面以括號結尾,如果有要傳入函數內的參數或是變數都要放在括號中間,並且若要返回函數運作完著數值可使用return。
語法:
def 你取的酷名字(參數):
  裡面的隨便動作
  return 要得參數
直接看例子會清楚很多:

def sub(j,k):
    return j-k
x = 20
y = 40
print("%d - %d = %d" %(x,y,sub(x,y)))

輸出:

20 - 40 = -20

NumPy函式庫

https://ithelp.ithome.com.tw/upload/images/20190925/20121049s0epe9KRvn.jpg
圖片出處
NumPy是python非常強大的函式庫,當我們在做許多資料處理時非常的好用!
疑?我是來學最潮的人工智慧耶,分享這給我幹嘛?因為當我們在做機器學習時,資料是相當相當的重要的,如果不懂資料,連訓練都不用訓練了,也不用去逼近什麼最佳函式了!
所以說,資料處理相關的函式庫對於我們人工智慧的初學者來說也是相當重要的!

那到底什麼是NumPy?

NumPy是python的重要模組,主要用來資料處理,支援高階大量的矩陣、維度陣列運算。python在處理很大很多的資料時,其實,原本裡面的list效能並不是太好,而NumPy底層以C語言開發,具備平尋處理能力,相對起來處理會相當快速。
還有還有,NumPy函式庫與資料科學相關套件(也就是我們之後會大量使用到的分析工具,如Matplotlib)能互相配合,且能將神經網路轉為陣列進行處理!

Numpy陣列

https://ithelp.ithome.com.tw/upload/images/20190925/201210496uRkBdNrnG.jpg
numpy重點在矩陣、陣列的操作,其中一個重要的特點就是對N維數組對象的ndarray進行操作。ndarray的常見屬性有型態、形狀及數值。
例子:
1.一階陣列:

import numpy as np
x = np.array([1,2,3,4,5])

print("Type is %s "%(type(x))) #型態
print("Shpae is %s "%(x.shape,)) #形狀
print("Values are %s"%(x)) #數值

輸出:

Type is <class 'numpy.ndarray'> 
Shpae is 5 
Values are [1 2 3 4 5]

2.二階陣列

y = np.array([[1,2,3,4,5],[6,7,8,9,10]])
print("Type is %s "%(type(y))) #型態
print("Shpae is %s "%(y.shape,)) #形狀
print("Values are %s"%(y)) #數值

輸出:

Type is <class 'numpy.ndarray'> 
Shpae is (2, 5) 
Values are [[ 1  2  3  4  5]
 [ 6  7  8  9 10]]

廣播(Broadcast)

https://ithelp.ithome.com.tw/upload/images/20190925/201210499cuUPz1BFj.jpg
圖片出處
廣播(Broadcast)是numpy對不同形狀的數組計算的方式,會有自動推播的功能,直接來看例子會更容易明白。
例子:

import numpy as np 
 
a = np.array([[ 0, 0, 0],
           [1,1,1],
           [2,2,2],
           [3,3,3]])
b = np.array([1,2,3])
print(a + b)

輸出:

[[1 2 3]
 [2 3 4]
 [3 4 5]
 [4 5 6]]

會發現不同shape時,使用numpy直接相加會有推到最大形狀並且相加的功能。

矩陣指標

類似list的索引值,可以從找索取numpy內的部分陣列。
例子:

import numpy as np 
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
print("Type is %s "%(type(a))) #型態
print("Shpae is %s "%(a.shape,)) #形狀
print("Values are %s"%(a)) #數值

print("*"*30)

b = a[:3,1:3]  #row取0,1,2列;column取1,2行
print("Type is %s "%(type(b))) #型態
print("Shpae is %s "%(b.shape,)) #形狀
print("Values are %s"%(b)) #數值

輸出:

Type is <class 'numpy.ndarray'> 
Shpae is (4, 4) 
Values are [[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
******************************
Type is <class 'numpy.ndarray'> 
Shpae is (3, 2) 
Values are [[ 2  3]
 [ 6  7]
 [10 11]]

今天繼續介紹了一些python的指令,以及很重要的numpy觀念,不過因為我們整個系列的文章是著重在人工智慧相關的數學理論及經典案例分享,所以不會介紹太深入哦~大概提出來讓你們知道基本的東西有哪些可以往這些去練習熟悉。
明天開始會介紹在機器學習中常用的函式庫,用來進行資料的處理、分析,請大家繼續關注囉!


上一篇
【Day 09】開始寫程式拉!第二站:Python基礎介紹(1/2)
下一篇
【Day 11】開始寫程式拉!第三站:重要函式庫-Matplotlib
系列文
實實在在地學習人工智慧-基礎理論探討與經典案例實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言