Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


以前總認為Numpy是渣渣,直到深入接觸以後才知道功能這麼強大。堪比Matlab啊。果然是人生苦短,我用Python。(文末給大家準備了最全的python教程)希望可以幫助大家快速入門Numpy。如果你有Matlab基礎,那麼你能很快看懂本文!!!

一個栗子

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


創建矩陣


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


矩陣行數列數

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


矩陣按行列選取


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


矩陣按條件截取

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


Stacking together different arrays


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)

  • 矩陣的合併也可以通過concatenatef方法。
  1. np.concatenate( (a1,a2), axis=0 ) 等價於 np.vstack( (a1,a2) )
  2. np.concatenate( (a1,a2), axis=1 ) 等價於 np.hstack( (a1,a2) )


通過函數創建矩陣


arange

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


linspace/ logspace

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


random

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


矩陣的運算


常用矩陣運算符
Numpy中的ndarray對象重載了許多運算符,使用這些運算符可以完成矩陣間對應元素的運算。
運算符說明+矩陣對應元素相加-矩陣對應元素相減矩陣對應元素相乘/矩陣對應元素相除,如果都是整數則取商%矩陣對應元素相除後取餘數矩陣每個元素都取n次方,如*2:每個元素都取平方

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


常用矩陣函數
同樣地,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 。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


矩陣的轉置 a.T

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


矩陣的逆


設A是數域上的一個n階方陣,若在相同數域上存在另一個n階矩陣B,使得: AB=BA=E。 則我們稱B是A的逆矩陣,而A則被稱為可逆矩陣。
求矩陣的逆需要先導入numpy.linalg,用linalg的inv函數來求逆。矩陣求逆的條件是矩陣應該是方陣。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


矩陣信息獲取(如均值等)


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

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


平均值
獲得矩陣中元素的平均值可以通過函數mean()。同樣地,可以獲得整個矩陣、行或列的平均值。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


方差
方差的函數為var(),方差函數var()相當於函數mean(abs(x - x.mean())**2),其中x為矩陣。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


標準差
標準差的函數為std()。 std()相當於sqrt(mean(abs(x - x.mean())**2)),或相當於sqrt(x.var())。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


中值
中值指的是將序列按大小順序排列後,排在中間的那個值,如果有偶數個數,則是排在中間兩個數的平均值。中值的函數是median(),調用方法為numpy.median(x,[axis]),axis可指定軸方向,默認axis=None,對所有數取中值。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


求和
矩陣求和的函數是sum(),可以對行,列,或整個矩陣求和

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


累積和
某位置累積和指的是該位置之前(包括該位置)所有元素的和。例如序列[1,2,3,4,5],其累計和為[1,3,6,10,15],即第一個元素為1,第二個元素為1+2=3,……,第五個元素為1+2+3+4+5=15。矩陣求累積和的函數是cumsum(),可以對行,列,或整個矩陣求累積和。


Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


極差

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


百分位數

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


序號參數及描述1.a 輸入數組2.q 要計算的百分位數,在 0 ~ 100 之間3.axis 沿著它計算百分位數的軸
加權平均值

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


Shape Manipulation


Changing the shape of an array

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


數組的形狀可以用以下方式改變。Note that the following three commands all return a modified array, but do not change the original array:

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


The reshape function returns its argument with a modified shape, whereas the ndarray.resize method modifies the array itself:

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


If a dimension is given as -1 in a reshaping operation, the other dimensions are automatically calculated:

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


Splitting one array into several smaller ones
Using hsplit, you can split an array along its horizontal axis, either by specifying the number of equally shaped arrays to return, or by specifying the columns after which the division should occur:

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


Copies and Views
When operating and manipulating arrays, their data is sometimes copied into a new array and sometimes not. This is often a source of confusion for beginners. There are three cases:
No Copy At All
a = b,改變b就相當於改變a,或者相反。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


View or Shallow Copy
Different array objects can share the same data. The view method creates a new array object that looks at the same data.


Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


Slicing an array returns a view of it:

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


Python精講Numpy基礎,大牛筆記詳細解釋

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


Deep Copy
The copy method makes a complete copy of the array and its data.

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


曼德勃羅

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


最後檸檬為大家準備了一些python的學習教程分享,希望可以幫助到大家。

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)

Python精講Numpy基礎,大牛筆記詳細解釋(文末python教程分享)


獲取方式:請大家轉發+關注並私信小編關鍵詞:“資料”即可獲取。


分享到:


相關文章: