1. 程式人生 > >Python大數據與機器學習之NumPy初體驗

Python大數據與機器學習之NumPy初體驗

clas 自己 入門 left ray spark AC DC 精通

本文是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初體驗