機器學習訓練營---第一週總結

知識點列表:
1. python基礎數據類型
2. 變量和表達式
3. if , elif , else , continue , break流程控制
4. for , while循環控制
5. 字符串操作
6. list , tuple , set , dictionary 容器操作 (重點)
7. 文件讀/寫
8. 面向對象
9. 切片的使用,字符串,list都可以用
10. 高階函數的使用:
a. map
b. reduce
c. filter
d. sorted
e. lambda
f. zip
g. eval

本週主要是學習python基礎知識,能熟練運用python,對於我這種沒有python基礎的iOS程序員來說,壓力確實挺大的,畢竟要一週內從不會到能代碼。但是我不怕,因爲這次是下決心來學習人工智能,就算困難也要克服。

由於之前有學習iOS和android的經歷,所以非常明白學習好python基礎知識的重要性,就像是練功夫要先扎馬步一樣,只有python的基礎知識學習牢固了,後面做爬蟲,機器學習纔有底氣。所以這一週嚴格按照課程安排學習python的基礎知識,雖然羣裏有同學學的很好,都在看微積分,線性代數等等一些高級的知識,但是我沒有因此改變我的節奏,繼續穩紮穩打的學習。

其實最大的挑戰就是合理安排好時間,爲此,我搬到了地鐵站附近,上班時間比以前每天節省了1個小時左右,而且地鐵也不用換乘,在地鐵上有60%-80%的時間也是可以聽課和做練習的,每天晚上8點到10點上課,這個時間段必須抽出來,爲此一些聚會,飯局全部推掉,早上5點40起牀,騎自行車鍛鍊身體,買早餐,7點上班,從家到地鐵站和從地鐵站到公司的路程全部騎自行車,保證每天8公里左右的運動時間。工作時間高效的完成工作,珍惜每一分鐘的時間,減少喝水的次數和雜事的數量,專注完成每天的工作,以保證充分的學習時間。

週末要趕火車參加線下課,今天是第一次線下課,收穫非常大,有了互動,自己也問了寒老師問題,得到答案並明白了問題的本質原因,之後的每一次課都要堅持來。當然有的同學也說了成本問題,來回的火車票加酒店的錢,3個月下來,比總共的學費都要貴,但是我認爲是值得的,換個角度想“ 假如我從事人工智能的工作3年後年薪達到了500萬,那麼還會覺得現在這些火車票和酒店錢貴嗎? ”所以我從來沒有動搖過。

下面詳細整理一下學習筆記:
1. python基礎數據類型:
a. 整形int
b. 浮點型float
c. 數據類型強制轉換
d. 四則運算
e. 字符串
f. bool
g. 可以用 type ( x ) 查看x的類型
2. x = 12 x是一個變量,python中聲明變量的時候不需要指定變量的類型,跟iOS不同
a. x * 2 表示x的平方, x * 3表示x的3次方 x += 1 相當於 x = x + 1
b. python中沒有 i ++ 可以用x += 1表示
3. if 後必須跟一個返回bool值的表達式
a. if else 後必須跟冒號,python中沒有else if 可以用elif代替
b. 簡單的for循環 for name in names:
c. range用法
i. range(1,10) 會輸出 1到9
ii. range(1,20,5) 會輸出 5,10,15 最後面那個5是指每隔5個輸出一次,如果不設置,默認爲1
d. enumerate用法
i. 會把數組轉化爲帶編號的的list
ii. 用for取出編號和值 for i,name in enumerate(names):
e. 列表推導式
i. [“stupid”+name for name in names]
ii. 上面的列表推導式會生成一個list,裏面每個元素都會在原來的基礎上加上stupid
iii. 列表推導式分爲兩個部分 for前面的,和for後面的
4. while循環:
a. while後面跟的表達式要返回true,纔會執行while裏面的代碼,也是加上冒號。
b. while中可以配合break和continue使用比如
c. i = 0
d. while true:
i. print(i)
ii. i += 1
iii. if i >= 10:
1. break
e. 執行上面的代碼,與奧break的時候就會跳出while
5. string字符串操作:
a. 雙引號和單引號都可以 “sqc”’sqc’
b. 但是雙引號裏的字符串再用引號要用單引號,單引號裏用雙引號,要成對出現
c. 輸出多行字符串,用”’ ”’ 或 “”” “”” 三個雙引號單引號給括起來例如
i. ”’ sqc
ii. facebook
iii. google ”’
d. \n 換行符 \t tab鍵
e. 字符串拼接要用 + 加號例如
i. “hello” + ” ” + “world”
f. w[0] 會輸出字符串的第一個字符
g. w[-1] 會輸出字符串的最後一個字符
h. python中索引是有負數的,表示倒着數, -1就是倒數第一個
i. 切片:
i. w[1:3] 表示把字符串索引爲1切到索引爲3,注意,包含1,但不包含3
ii. w[:3]表示從0開始切
iii. w[:100000]表示切到最後一個,100000超過索引即取最後一個
j. w.upper()字串變爲大寫(注意這樣不會把原來的字符串變爲大寫,而是生成一個新的字符串,如果要用就拿一個變量去接收)
k. w.lower()變爲小寫
l. w.capitalize() 首字母變爲大寫
m. w.strip()去掉兩邊的空格
n. w.lstrip()去掉左邊的空格
o. w.rstrip()去掉右邊的空格
p. w.split() 默認按空格拆分爲一個list 也可以指定字符 w.split(‘,’) 這樣就是按逗號拆分
q. w.find(‘a’)找到a出現的位置
r. w.replace(‘,’ , ‘|’) 把所有的逗號都替換成 |
6. list : names = [“sqc”, “facebook”, “google”] 列表
a. list也可以用切片
b. names[1:3] 從索引爲1切到索引爲3
c. list(“facebook”) 把一個字符串的每一個字母強制轉化爲list
d. names.append(‘book’) 在list的末尾添加一個元素
e. names + namestwo 可以生成一個新的list
f. ‘sqc’ in names 判斷一個元素是否在list裏面
g. names.insert(3 , ‘me’)在索引三的位置上添加一個元素
h. names.pop() 返回list中最後一個元素,並且在names中刪除最後一個元素
i. names.count(‘sqc’) sqc在list中出現了幾次
j. names.reverse() 把list倒序
k. del names(3) 刪除索引爲3的那個元素,注意用del關鍵字刪除
7. set : 集合,無序,每一個元素不重複
a. new_set = set()
b. 用來把list中的元素去重複 :
i. a = list(‘sqcsqc’)
ii. s = set(a)
iii. new_a = list(s)
iv. 這樣就完成了list去重複的操作
8. tuple : 很像list,區別是不可變,不能添加和修改
9. dictionary : 裏面都是key value parts
a. fruit[‘apple’] 取出apple對應的那個值
b. fruit.keys() 取出所有的key
c. fruit.values() 取出所有的value
10. function:
a. function 的構成: def 關鍵字,加方法名 ,加小括號, 加冒號
b. 小括號裏可以加一個參數或多個參數,也可以不加參數
c. def add(x,y):
d. 如果是不定長度的參數,可以用星號代替 def add (*args): (args 的類型會是一個tuple)
e. 可以把list當作是一個參數傳過去 例如:
i. r = [2,5]
ii. add(*r)
iii. 這樣的話,2和5就自動對應到x,y上了
11. 面向對象:這部分理解還算好,因爲OC也是面嚮對象語言,所以學歷起來比較好
a. 每個成員方法中的第一個參數一定是self
12. 迭代器 :iterator
a. x = iter([1,2,3,4])
b. print(next(x))
c. print(next(x))
d. print(next(x))
e. 這樣會輸出1,2,3, next的方法會一直執行下一個元素, 超過list的個數時就會報錯
13. 生成器 : generator
a. yield 關鍵字 , 相當於有一個遊標,當指向這個遊標的時候再取值,類似c語言的指針
14. 文件讀寫:
a. csv文件I/O
b. 打開一個文件 in_file = open(“data/sample.csv”,”r”) “r” 是讀權限
c. 讀取數據 csv_reader = csv.reader(in_file)
d. in_file.close() 用完記得關上
e. 把數據寫入文件: out_file = open(“output.csv”,”w”) “w” 是寫權限
i. out_writer = csv.writer(out_file)
ii. out_writer.writerow([“sqc”,”google”,”facebook”])
iii. out_file.close()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章