前言
機器學習以及資料分析的首選語言非python莫屬。python含有資料分析和機器學習大量的科學計算包:numpy,scipy,keras,pandas等工具包。
想快速利用python進行資料分析,可以開始先掌握資料分析比較常用和實用的python基礎,以便快速展開機器學習,資料分析等相關工作。
python基礎 - 機器學習筆記
1.終端執行python檔案
$ python desktop/hello.py
hello world!
2.ipython執行python檔案
in [2]: %run desktop/hello.py
hello world!
3.python組織**通過空白符來組織**,而不是大括號{},相同級別的**縮排相同的空格
吐槽:無論對它是愛是恨,反正有意義的空白符就是python程式設計師����的生活現實
4.python的語句可以不以分隔符(;)結尾
5.python語言的乙個重要特點就是其物件模型的一致性。python直譯器中的任何數值,字串,資料結構,函式,類,模組都是python物件。
6.python的注釋 # 或者 」』注釋」』
7.python的函式呼叫和物件方法呼叫
函式呼叫: fun(params1,params2,…)
物件方法的呼叫: obj.fun(params1, params2)
8.python在對變數賦值時,其實是在建立等號右側物件的乙個引用。
9.python在一定程度上可以認為是一種強型別的語言。
eg.
typeerror traceback (most recent call last)
in ()
—-> 1 『5』 + 6
typeerror: must be str, not int
10.isinstance方法 - 檢驗某個物件的型別是否屬於元組中所指定的那些
in [5]: isinstance(1, (int, float))
out[5]: true
11.引入模組
import datetime
from pandas import series
12.
is關鍵字:判斷兩個引用是否指向同乙個物件
is not關鍵字: 判斷兩個引用是否不指向同乙個物件
==: 判斷兩個物件的值是否相等
eg.
in [9]: list(『aaa』) == list(『aaa』)
out[9]: true
13.可變和不可變的物件
大部分python物件是可變的,比如列表,字典,numpy陣列以及大部分使用者自定義型別(類)。也就是說它們所包含的物件或值是可以被修改的。
而其他的(如字串和元組等)則是不可變的。
14.標量型別
none
str
float
bool
int
注:複數的虛部使用j表示的
15.字串
編寫字串字面量是,既可以單引號』, 又可以雙引號」, 對於帶有換行符的多行字串,可以使用三重引號」』。
python字串是不可變的。要修改字串就只能建立乙個新的字串。
16.布林值: true和false
17.日期和時間date,time,datetime
from datetime import date, time, datetime
dt = datetime(2011, 10, 29, 20, 30, 21)
dt.minute
out[23]: 30
in [24]: dt.date()
out[24]: datetime.date(2011, 10, 29)
in [25]: dt.time()
out[25]: datetime.time(20, 30, 21)
1>字串轉換為datetime
datetime.strptime(『20091031』, 『%y%m%d』)
2>datetime轉換為字串
dt.strftime(『%y%m%d %h:%m』)
3>兩個datetime物件的差會產生乙個datetime.timedelta型別
18.控制流
if, elif, else
19.while迴圈
20.pass
pass是python中的「空操作」語句
注: 在開發乙個新功能時,常常會將pass用作**中的佔位符
21.異常處理:
try:
pass
except (valueerror, typevalue):
pass
else:
pass
finally:
pass
22.range函式用於產生一組間隔平均的整數
23.三元表示式:
a = 2 if flag else 5
24.元組
元組是一種一維的,定長的,不可變的python物件序列。
元組的元素可以通過方括號()進行訪問
元組可以通過 加號+ 或者 乘號* 運算子連線起來以產生更長的元組
元組的方法
count它用於計算指定值的出現次數
in [27]: a
out[27]: (1, 2, 2, 2, 3)
in [28]: a.count(2)
out[28]: 3
25.列表
列表list是變長的,而且其內容也是可以修改的。它可以通過方括號 或者 list函式進行定義
in關鍵字:
eg.
a = (1, 2, 2, 2, 3)
in [29]: 1 in a
out[29]: true
26.排序
a.sort(key=len, reverse=false)
27.二分搜尋
import bisect
bisect.bisect(a, 2) # 可以找出新元素應該被插入哪個位置才能保持原序列的有序性 (公升序的位置)
bisect.insort(c, 6) # 將新元素插入到那個位置
28.序列的切片
29.內建的序列函式
enumerate
sorted
注:attributeerror: 『dict』 object has no attribute 『sort』
zip
reversed
29.字典
dict = {}
字典對應的方法:
d.keys()
d.values()
d.items()
d.update({}) - 乙個字典可以被合併到另乙個字典中去
注:字典的本質上就是乙個二元元組集
d.get()和d.pop()可以接受乙個可供返回的預設值
注:如果key不存在,並且不設定預設值,get方法預設返回none,而pop則會引發乙個異常
注: 字典的值可以是任何python物件,但鍵必須是不可變物件.屬於是可雜湊性,通過hash函式,你可以判斷某個物件是否是可雜湊的。
30.集合set
集合支援各種數學集合運算,如並,交,差以及對稱差等。
方法 a_set.issubset(b_set) # 判斷a_set是否為b_set的子集
s_set.issuperset(b_set) # 判斷a_set是否為b_set的超集
== 判斷兩個集合是否相等
31.列表推導式
[item*2 for item in list0 if item > 3]
32.函式是python中最主要也是最重要的**組織和復用手段
1>在函式中對全域性變數進行賦值操作,那些變數必須用global關鍵字宣告稱全域性的才行
2>返回多個值 在函式中需要返回多個值時,可以將多個值封裝成乙個元組或者字典
3>python中的函式頁可以看成是乙個物件
4>匿名函式 - 也稱為lambda函式,這是一種非常簡單的函式:僅由單挑語句組成,該語句的結果就是返回值
33.閉包:返回函式的函式
34.柯西化:部分引數的應用
eg.
sum = lambda x,y:x+y
add5 = lambda z: sum(z, 5)
35.生成器
要建立乙個生成器。只需將函式中的return替換為yeild即可
36.生成器表示式
eg.
gen = (x ** 2 for x in range(10))
37.檔案和作業系統
1> 讀取檔案內容
with open(path) as f:
lines = f.readlines()
2>將文字寫入檔案
with open(path, 『w』) as f:
f.writellines(lines) # type(lines) = list
機器學習基礎學習筆記 機器學習基礎介紹
概念 多領域交叉學科,設計概率論 統計學 逼近論 凸分析 演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。學科定位 人工智慧 artificial intelligence,ai 的核心,是是計算機具有智慧型...
Python 機器學習基礎
pandas matplotlib reference numpy 的資料結構 numpy的基本操作 當進行 和 等邏輯判斷時,numpy會對array中所有元素進行判斷。import numpy vector numpy.array 5,10,6,7 vector 10 output array ...
python基礎(機器學習)
高階函式 import time def deco func starttime time.time func endtime time.time msecs endtime starttime 100 print time is d ms msecs def func print hello ti...