Numpy初步
1,獲取矩陣行列數
Import numpyasnp
#建立二維的naaray物件
a=np.array([[1,2,3,4,5],[6,7,8,9,10]])
print(a.shape) #返回一個形狀,是一個tuple
print(a.shape[0])#獲得行數,試想如果是多維的呢,所以你就會明白為什麼是[0]
print(a.shape[1]) #獲得列數
2,矩陣的擷取
importnumpyasnp
#建立二維的naaray物件
a=np.array([[1,2,3,4,5],[6,7,8,9,10]])
print(a[0:1])#這裡不是很懂,看下面
print(a[1,2:4])#返回[89],返回第二行2-3個數
print(a[1,2:5])#返回[8910]證明了取第二行的2-4個數
3,按條件擷取
importnumpyasnp
#建立二維的naaray物件
a=np.array([[1,2,3,4,5],[6,7,8,9,10]])
b=a[a>6]#擷取矩陣a中大於6的元素,範圍的是一維陣列
print(b)
print(a>6)#其實布林語句首先生成一個布林矩陣,將布林矩陣傳入[](方括號)實現擷取
4,滿足一定條件的元素變成特定的值
importnumpyasnp
#建立二維的naaray物件
a=np.array([[1,2,3,4,5],[6,7,8,9,10]])
print(a)
#大於6清零後矩陣為
a[a>6]=0
print(a)
結果分別為:
[[12345]
[678910]]
[[12345]
[60000]]
5,矩陣合併
importnumpyasnp
a1=np.array([[1,2],[3,4]])
a2=np.array([[5,6],[7,8]])
print(np.hstack([a1,a2]))#Horizontal
print(a1)#所以知道為什麼是1256,2478了
print(np.vstack((a1,a2)))#vertical
np.concatenate((a1,a2),axis=0)#等價於np.vstack((a1,a2))
np.conca
6,透過函式建立矩陣
numpy自帶建立narray物件的函式,可以方便的建立常用的有規律的矩陣
importnumpyasnp
a=np.arange(10)#預設從0開始到10(不包括10),步長為1
print(a)#返回[0123456789]
a1=np.arange(5,10)#從5開始到10(不包括10),步長為1
print(a1)#返回[56789]
a2=np.arange(5,20,2)#從5開始到20(不包括20),步長為2
print(a2)#返回[5791113151719]
7,linspace
建立指定數量等間隔的序列,實際生成一個等差數列
importnumpyasnp
a=np.linspace(0,10,7)#生成首位是0,末位是10,含7個數的等差數列
print(a)
8,logspace
logspace用於生成等比數列。
importnumpyasnp
a=np.logspace(0,10,7)#生成首位是10**0,末位是10**4,含5個數的等比數列
print(a)
9,ones,zeros,eye,empty
ones建立全1矩陣
zeros建立全0矩陣
eye建立單位矩陣
empty建立空矩陣(實際有值)
importnumpyasnp
one=np.ones((3,4))#建立3*4的全1矩陣
print(one)
zero=np.zeros((3,4))#建立3*4的全0矩陣
print(zero)
eye=np.eye(5)#建立5階單位矩陣
print(eye)
empty=np.empty((3,4))#建立3*4的空矩陣(實際有值)
print(empty)
10,fromstring ——獲得字元ASCII碼
fromstring()方法可以將字串轉化成ndarray物件,需要將字串數字化時這個方法比較有用,可以獲得字串的ascii碼序列,轉成相應字元的阿斯卡碼。
importnumpyasnp
a="abcdef"
b=np.fromstring(a,dtype=np.int8)#因為一個字元為8位,所以指定dtype為np.int8
print(b)#返回[979899100101102]
11,fromfunction
fromfunction()方法可以根據矩陣的行號列號生成矩陣的元素。
例如建立一個矩陣,矩陣中的每個元素都為行號和列號的和。
importnumpyasnp
deffunc(i,j):
returni+j #這裡也可以是別的,比如再加一個9
a=np.fromfunction(func,(5,6))
#函式定義就是如此,第一個引數為指定函式,第二個引數為列表list或元組tuple,說明矩陣的大小
print(a)
12,常用矩陣函式
同樣地,numpy中也定義了許多函式,使用這些函式可以將函式作用於矩陣中的每個元素。
表格中預設匯入了numpy模組,即 import numpy asnp
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中每個元素取指數函式,ex
np.sqrt(a) 對矩陣a中每個元素開根號√x
importnumpyasnp
a=np.array([[1,2,3],[4,5,6]])
print(np.sin(a))
#結果
[[0.841470980.909297430.14112001]
[-0.7568025-0.95892427-0.2794155]]
print(np.arcsin(a))
#結果
#RuntimeWarning:invalidvalueencounteredinarcsin
print(np.arcsin(a))
[[1.57079633nannan] #nan是not a number 的意思
[nannannan]]
13,矩陣乘法(點乘)
條件:第一個矩陣的列數等於第二個矩陣的行數,函式為dot
importnumpyasnp
a1=np.array([[1,2,3],[4,5,6]])
a2=np.array([[1,2],[3,4],[5,6]])
ifa1.shape[1]==a2.shape[0]:#列數等於行數的話
print(a1.dot(a2))
14,矩陣的轉置
transpose函式
importnumpyasnp
a=np.array([[1,2,3],[4,5,6]])
print(a.transpose())
15,矩陣的逆
求矩陣的逆需要先匯入numpy.linalg,用linalg的inv函式來求逆。
矩陣求逆的條件是矩陣的行數和列數相同。
importnumpyasnp
importnumpy.linalgaslg
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(lg.inv(a))
#結果
[[-4.50359963e+159.00719925e+15-4.50359963e+15]
[9.00719925e+15-1.80143985e+169.00719925e+15]
[-4.50359963e+159.00719925e+15-4.50359963e+15]]
a=np.eye(3)#3階單位矩陣
print(lg.inv(a))#單位矩陣的逆為他本身
#結果
[[1.0.0.]
[0.1.0.]
[0.0.1.]]
16,矩陣資訊獲取(如平均值)
獲得矩陣中元素最大最小值的函式分別是max和min,可以獲得整個矩陣、行或列的最大最小值。
importnumpyasnp
a=np.array([[1,3,9],[1,5,6]])
print(a.max())
print(a.min())
print(a.max(axis=0))#[456]axis=0行方向最大(小)值,即獲得每列的最大(小)值
print(a.min(axis=1))#[14]axis=1列方向最大(小)值
#要想獲得最大最小值元素所在的位置,可以透過argmax函式來獲得
print(a.argmax(axis=1))
17,平均值mean()
獲得矩陣中元素的平均值可以透過函式mean()。同樣地,可以獲得整個矩陣、行或列的平均值
importnumpyasnp
a=np.array([[1,2,3],[4,5,6]])
print(a.mean())#結果為:3.5
#同樣地,可以透過關鍵字axis引數指定沿哪個方向獲取平均值
print(a.mean(axis=0))#結果[2.53.54.5]
print(a.mean(axis=1))#結果[2.5.]
18,方差var()
importnumpyasnp
a=np.array([[1,2,3],[4,5,6]])
print(a.var())
print(a.var(axis=0))
print(a.var(axis=1))
19,標準差std()
importnumpyasnp
a=np.array([[1,2,3],[4,5,6]])
print(a.std())
print(a.std(axis=0))
print(a.std(axis=1))
20,中值median()
呼叫方法是numpy.median(x,[axis]),axis可指定軸方向,預設為axis=none,對所有數取中值
importnumpyasnp
x=np.array([[1,2,3],[4,5,6]])
print(np.median(x))#對所有數取中值
print(np.median(x,axis=0))#沿第一維方向取中值
print(np.median(x,axis=1))#沿第二維方向取中值
21,求和sum()
importnumpyasnp
a=np.array([[1,2,3],[4,5,6]])
print(a.sum())#對整個矩陣求和
print(a.sum(axis=0))#對行方向求和
print(a.sum(axis=1))#對列方向求和
22,累積和cussum()
某位置累積和指的是該位置之前(包括該位置)所有元素的和。
例如序列[1,2,3,4,5],其累計和為[1,3,6,10,15],即第一個元素為1,第二個元素為1+2=3,……,第五個元素為1+2+3+4+5=15。
矩陣求累積和的函式是cumsum(),可以對行,列,或整個矩陣求累積和。
importnumpyasnp
a=np.array([[1,2,3],[4,5,6]])
print(a.cumsum())#對整個矩陣求累積和
print(a.cumsum(axis=0))#對行方向求累積和
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2221982/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Numpy學習(2)numpy向量化、numpy操作
- NumPy之:NumPy簡介教程
- Axios初步iOS
- $LCT$初步
- Numpy
- shell初步(轉)
- NumPy 索引索引
- Exercise: Numpy
- Numpy 01
- NumPy Tips
- numpy中的numpy boolean substract,the '-' operator 錯誤Boolean
- NumPy 超詳細教程(1):NumPy 陣列陣列
- git的初步使用Git
- 網路流初步
- Nginx初步入門Nginx
- 初步學習VuexVue
- ActiveMQ初步安裝MQ
- Mybatis初步認識MyBatis
- iOS gRPC 初步探索iOSRPC
- TypeScript初步瞭解TypeScript
- 初步認識zookeeper
- Mongoose初步學習Go
- linux核心管理初步Linux
- (2)python_numpy: numpy.ma.masked_invalid 與 numpy.ma.compress_rowcols 函式用法Python函式
- NumPy 新手教程
- NumPy常用操作
- Numpy基礎
- numpy概念(一)
- numpy 基礎入門 - 30分鐘學會numpy
- numpy學習筆記 – numpy陣列的常見用法筆記陣列
- 挖掘性質初步成型
- 動態規劃初步動態規劃
- Git的初步學習Git
- 前端的初步----呼叫介面前端
- 【DP】斜率優化初步優化
- Spring初步認識-(1)Spring
- 初步瞭解表單操作
- SVG:初步學習感想SVG