第一章 | 使用python機器學習
正文共1670個字,預計閱讀時間10分鐘。
蘇小保(jacksu) 華為工程師 擅長分散式系統、大數據、機器學習。github地址:https://github.com/jacksu
python經常作為機器學習的首選,有一個統計,50%以上的機器學習開發者使用python。在學習機器學習之前需要熟悉以下幾個python模塊:
- numpyPython沒有提供數組,列表(List)可以完成數組,但不是真正的數組,當數據量增大時,它的速度很慢。所以Numpy擴展包提供了數組支持,同時很多高級擴展包依賴它。是以矩陣為基礎的數學計算模塊,純數學。
- SciPySciPy是數學,科學和工程的開源軟體。 它包括用於統計,優化,集成,線性代數,傅里葉變換,信號和圖像處理,ODE解算器等的模塊。SciPy庫依賴於NumPy,提供方便快捷的N維數組操作。比方說做個傅立葉變換,這是純數學的,用Numpy;做個濾波器,這屬於信號處理模型了,在Scipy里找。
- pandasPandas提供了一套名為DataFrame的數據結構,比較契合統計分析中的表結構,並且提供了計算介面,可用Numpy或其它方式進行計算。
- matplotlib & seaborn
該包主要用於繪圖和繪表,強大的數據可視化工具,做圖庫。
現在我們開始熟悉numpy的常用操作函數:
** 一維數組 **n#encoding=utf8nimport numpy as npn# 定義一維數組na = np.array([2, 0, 1, 5, 8, 3])nprint u原始數據:, an#輸出最大、最小值及形狀nprint u最小值:, a.min()nprint u最大值:, a.max()nprint u形狀, a.shapen# 數據切片nprint u切片操作:n# [:-2]後面兩個兩個值不取nprint a[:-2]n#[-2:]表示後往前數兩個數字,獲取數字至結尾nprint a[-2:]n#[:1]表示從頭開始獲取,獲取1個數字nprint a[:1]n# 排序nprint type(a)nprint a.dtype a.sort()nprint u排序後:, an
運行結果
原始數據: [2 0 1 5 8 3]n最小值: 0最大值: 8形狀 (6,)n切片操作:n[2 0 1 5]n[8 3]n[2]n<type numpy.ndarray>nint32n排序後: [0 1 2 3 5 8]n
二維數組
#二維數組操作nc = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [7, 8, 9, 10]])n# 獲取值nprint u形狀:, c.shapenprint u獲取值:, c[1][0]nprint u獲取某行:nprint c[1][:]nprint u獲取某行並切片:nprint c[0][:-1]nprint c[0][-1:]n#獲取具體某列值nprint u獲取第3列:n#np.newaxis增加一個新維度nprint c[:,np.newaxis, 2]n#函數n#sinnprint np.sin(np.pi/6)nprint np.sin(np.pi/2)nprint np.tan(np.pi/2)nprint np.arange(0,4)n
運行結果
形狀: (3, 4)n獲取值: 4獲取某行:n[4 5 6 7]n獲取某行並切片:n[1 2 3]n[4]n獲取第3列:n[[3]n [6]n [9]]0.51.01.63312393532e+16[0 1 2 3]n
注意,axis在numpy中表示第n個索引一個數組,在多維數組中,每個axis有一個索引,比如a = np.array([[1,2],[3,4]]),a[1,0] # to indexa, we specific 1 at the first axis and 0 at the second axis.
文中涉及源代碼參見 github
參考
http://blog.csdn.net/eastmount/article/details/53144633
推薦閱讀:
※Python數據分析及可視化實例之Flask Web開發
※lasagne,keras,pylearn2,nolearn深度學習庫,到底哪家強?
※[requests,pyquery]爬取獵聘網職位信息
※三分鐘學會Scrapy選擇器(selectors)
※敲敲級簡單的鑒別H圖片的小程序
TAG:Python |