Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

編程語言 MATLAB Python 技術 編程新世界 2018-12-07

以前總認為Numpy是渣渣,直到深入接觸以後才知道功能這麼強大。堪比Matlab啊。果然是人生苦短,我用Python。所以本文作為一個記錄&筆記,文章內容大多數取自網絡以&官網快速入門等,希望可以幫助大家快速入門Numpy。如果你有Matlab基礎,那麼你能很快看懂本文!(私信小編007即可獲取Python視頻教程以及各類PDF!)

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

一個栗子

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

創建矩陣

對於Python中的numpy模塊,一般用其提供的ndarray對象。 創建一個ndarray對象很簡單,只要將一個list作為參數即可。

例如:

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣行數列數

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣按行列選取

矩陣的截取和list相同,可以通過[](方括號)來截取

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣按條件截取

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

按條件截取應用較多的是對矩陣中滿足一定條件的元素變成特定的值。 例如將矩陣中大於6的元素變成0

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

Stacking together different arrays

矩陣的合併可以通過numpy中的hstack方法和vstack方法實現:

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣的合併也可以通過concatenatef方法

  • np.concatenate( (a1,a2), axis=0 ) 等價於 np.vstack( (a1,a2) )
  • np.concatenate( (a1,a2), axis=1 ) 等價於 np.hstack( (a1,a2) )

通過函數創建矩陣

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

arange

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

linspace/ logspace

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

ones、zeros、eye、empty

ones創建全1矩陣 ,zeros創建全0矩陣 ,eye創建單位矩陣 ,empty創建空矩陣(實際有值)

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

fromstring

fromstring()方法可以將字符串轉化成ndarray對象,需要將字符串數字化時這個方法比較有用,可以獲得字符串的ascii碼序列。

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

random

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

fromfunction

fromfunction()方法可以根據矩陣的行號列號生成矩陣的元素。 例如創建一個矩陣,矩陣中的每個元素都為行號和列號的和。

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣的運算

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

常用矩陣運算符

Numpy中的ndarray對象重載了許多運算符,使用這些運算符可以完成矩陣間對應元素的運算。

運算符說明+矩陣對應元素相加-矩陣對應元素相減*矩陣對應元素相乘/矩陣對應元素相除,如果都是整數則取商%矩陣對應元素相除後取餘數**矩陣每個元素都取n次方,如**2:每個元素都取平方

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

常用矩陣函數

同樣地,numpy中也定義了許多函數,使用這些函數可以將函數作用於矩陣中的每個元素。 表格中默認導入了numpy模塊,即 import numpy as np 。a為ndarray對象。

常用矩陣函數說明np.sin(a)對矩陣a中每個元素取正弦,sin(x)np.cos(a)對矩陣a中每個元素取餘弦,cos(x)np.tan(a)對矩陣a中每個元素取正切,tan(x)np.arcsin(a)對矩陣a中每個元素取反正弦,arcsin(x)np.arccos(a)對矩陣a中每個元素取反餘弦,arccos(x)np.arctan(a)對矩陣a中每個元素取反正切,arctan(x)np.exp(a)對矩陣a中每個元素取指數函數,exnp.sqrt(a)對矩陣a中每個元素開根號

當矩陣中的元素不在函數定義域範圍內,會產生RuntimeWarning,結果為nan(not a number)

矩陣乘法(點乘)

矩陣乘法必須滿足矩陣乘法的條件,即第一個矩陣的列數等於第二個矩陣的行數。 矩陣乘法的函數為 dot 。

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣的轉置 a.T

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣的轉置還有更簡單的方法,就是a.T。

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣的逆

設A是數域上的一個n階方陣,若在相同數域上存在另一個n階矩陣B,使得: AB=BA=E。 則我們稱B是A的逆矩陣,而A則被稱為可逆矩陣。

求矩陣的逆需要先導入numpy.linalg,用linalg的inv函數來求逆。矩陣求逆的條件是矩陣應該是方陣。

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

矩陣信息獲取

(如均值等)

最值

獲得矩陣中元素最大最小值的函數分別是max和min,可以獲得整個矩陣、行或列的最大最小值。

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

形狀處理

改變數組的形狀

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

數組的形狀可以用以下方式改變。注意,下面的三個命令都返回一個修改後的數組,但不改變原始數組:

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

整形函數用修改的形狀返回它的參數,而NDARRA.ReSIZE方法修改數組本身:如果在整形操作中給出尺寸為-1,則其他尺寸自動計算:

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

曼德勃羅

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!

相關推薦

推薦中...