Python大數據與機器學習之NumPy初體驗
本文是Python大數據與機器學習系列文章中的第6篇,將介紹學習Python大數據與機器學習所必須的NumPy庫。
通過本文系列文章您將能夠學到的知識如下:
應用Python進行大數據與機器學習
應用Spark進行大數據分析
實現機器學習算法
學習使用NumPy庫處理數值數據
學習使用Pandas庫進行數據分析
學習使用Matplotlib庫進行Python繪圖
學習使用Seaborn庫進行統計繪圖
使用Plotly庫進行動態可視化
使用SciKit-learn處理機器學習任務
K-Means聚類
邏輯回歸
線性回歸
隨機森林與決策樹
自然語言處理與垃圾郵件過濾
神經網絡
支持向量機
另外小編也會擁抱變化,根據評論中的需求情況增加其它有意義的內容。例如增加一些相關面試題等等。
什麽是NumPy
NumPy是非常重要的Python數值計算擴展庫,基本整個Python大數據生態都依賴它,並且由於綁定了C語言庫,因此速度非常快。可以說我們要學好Python大數據,必須要學的就是NumPy庫了。
安裝NumPy
如果你根據之前的文章安裝了anaconda,那麽你已經默認安裝了NumPy庫了。如想單獨安裝請繼續往下看。
使用conda安裝的命令:
conda install numpy
使用pip安裝的命令:
pip install numpy
NumPy array
本系列文章主要用到的是numpy的array(數組);
numpy array有兩種基本形式:vector(向量)和matrics(矩陣)
vector是一維的,而matrics是二維的。
打開Jupyter,輸入如下內容:
import numpy as np
my_list = [1,2,3]
arr = np.array(my_list)
arr
運行得到如下結果:
以上就是vector的一般形式
繼續輸入如下內容:
my_mat = [[1,2,3],[4,5,6],[7,8,9]]
np.array(my_mat)
運行得到如下結果:
以上就是二維matrics矩陣。
numpy有自己的range函數
np.arange(0,10)
運行結果如下:
還可以指定步長np.arange(0,10,2)
運行結果如下:
生成所有元素為0的向量np.zeros(3)
運行結果如下:
生成所有元素為0的矩陣np.zeros((5,5))
運行結果如下:
同樣生成所有元素為1的向量和矩陣分表為np.ones(4),np.ones((2,3))
運行結果如下:
np.linspace(0,5,20)
第一個參數是起始點,第二個參數是結束點,第三個參數是從起點到終點距離分成多少份。
運行結果如下:
np.eye(4)生成4*4的主對角線為1的矩陣
運行結果如下:
np.random.rand(5)生成隨機向量
運行結果如下:
np.random.rand(5,5)生成5*5的隨機向量
運行結果如下:
np.random.randn(2)生成標準正態分布曲線。
運行結果如下:
np.random.randn(4,4)二維的標準正態分布曲線
運行結果如下:
提示:
在Jupyter輸入框中按tab鍵可以提示聯想菜單,按shift+tab可以提示函數用法
按tab鍵
按shift+tab鍵
np.random.randint(1,100)生成1個1到100之間的隨機整數,不包含100
運行結果如下:
np.random.randint(1,100,10)生成10個1到100之間的隨機整數,不包含100
運行結果如下:
array類型支持的一些函數:
reshape函數可以修改array的維數。例如:
arr = np.arange(25)
arr.reshape(5,5)
運行結果如下:
max函數:最大值
min函數:最小值
argmax函數:返回最大值的索引
argmin函數:返回最小值的索引
ranarr = np.random.randint(1,100,10)
ranarr.max()
ranarr.min()
ranarr.argmax()
ranarr.argmin()
運行結果如下:
shape函數,返回array的大小
dtype,返回數據類型
調用簡化:
from numpy.random import randint
我們就可以直接使用randint了
randint(2,10)
運行結果如下:
Python大數據與機器學習之NumPy初體驗