python基礎 機器學習筆記

2021-08-15 02:58:48 字數 4565 閱讀 4190

前言

機器學習以及資料分析的首選語言非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...