NumPy 1.14 教學 – #05 形狀操作、矩陣互相堆疊(Stacking)、矩陣切割(Splitting)

開始學NumPy之前至少先熟悉Python基礎使用方法,這樣再來看NumPy才不會那麼吃力!
Python3 教學、筆記

NumPy也提供了許多改變矩陣形狀、堆疊(Stacking)和切割(Splitting)的方法,這些功能也頗為實用!
本文將介紹以下方法:reshape, ravel, vstack, hstack, vsplit, hsplit

本文章範例也同步存放在:Learn NumPy – GitHub

Shape Manipulation

形狀操作(Shape Manipulation)

贊助廣告

矩陣的形狀(shape)很重要!尤其是再進行科學運算時,最常用到矩陣運算!
不過,強大的NumPy中提供了很多改變矩陣形狀的功能,可以滿足開發者的需求!

np.reshape(a, b):這是最基本的塑形功能,可以直接將陣列重新塑形成a-by-b或是更高維度的形狀!

Output

 

np.reshape(a, b, -1):使用-1,代表這個維度就交給NumPy自動計算!

Output

 

np.ravel():此功能會回傳一個將陣列或矩陣經扁平化(flattened)處理後的陣列

Output

 

$b=\begin{bmatrix}1 & 2 & 3\\
4 & 5 & 6
\end{bmatrix}^T=\begin{bmatrix}1 & 4\\
2 & 5\\
3 & 6
\end{bmatrix}$

ndarray.T:轉置矩陣(transpose)   注意喔!這是屬性!

Output

 

矩陣堆疊

矩陣堆疊(Stacking)

這還蠻常用到的…這功能可以方便運算時矩陣串接的需求!

np.vstack(a, b):將a, b矩陣沿著垂直軸堆疊
np.hstack(a, b):將a, b矩陣沿著水平軸堆疊

Output

 

矩陣分割

矩陣分割(Splitting)

將一個陣列或矩陣分割成多個小的矩陣或陣列!

np.hsplit( matrix, shape/number ):將matrix沿著自己的水平軸分割成指定的形狀(shape)或數量(number)
np.vsplit( matrix, shape/number ):將matrix沿著自己的垂直軸分割成指定的形狀(shape)或數量(number)

這個函數回傳型別是list!如果還想要利用NumPy的對它操作的話,要把它轉換成numpy.ndarray才行!

Output

 

Andy Wang

站在巨人的肩膀上仍須戰戰兢兢!

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料