Python中的 Numpy 數組形狀改變及索引切片
1.改變數組形狀
數組的shape
屬性返回一個元組,包括維度以及每個軸的元素數量,Numpy 還提供瞭一個reshape()
方法,它可以改變數組的形狀,返回一個新的數組。
例如:
a = np.array([1,2,3,4,5,6,7,8])
轉換成二維數組:
b = a.reshape((2,4))
轉換成三維數組:
c = a.reshape((2,2,2))
但是需要註意的是,修改後的數組元素個數與原數組元素個數必須是一致的,不一致會報錯。 例如執行b = a.reshape((2,5))
代碼會報“ValueError: cannot reshape array of size 8 into shape (2,5)”的錯誤。
2.索引和切片
在處理數據時,不可避免要對數據進行索引和切片,選擇數據的某幾行、某幾列數據等,Numpy 在這方面也非常強大,具體如下:
一維數組索引和切片一維數組索引和切片比較簡單,類似於Python的列表,例如:
a = np.array([1,2,3,4,5,6]) # 獲取第4個元素 a[4] # 獲取前3個元素 a[:3]
多維數組索引和切片多維數組有多個軸,那麼就需要對每個軸進行索引,此處以二維數組為例:
a = np.array([[1,2,3],[4,5,6]]) # 獲取某一行數據(第二行) a[1] # 獲取第二行第二個數據 a[1,1]
如果取第0軸前2個元素、第1軸前2個元素,那麼切片如下:
a[:2,:2]
佈爾索引
Numpy 佈爾索引指的是根據bool類型True和False確定的索引,例如:
a = np.arange(10) b = a<6 b
結果輸出如下:
array([ True, True, True, True, True, True, False, False, False, False])
通過結果可以看到,元素值小於6的話,佈爾索引值為True,否則為False。 如果想要過濾出來符合條件的結果,而不是輸出True和False,可以使用a[b]
即a[a<6]
實現。
到此這篇關於Python中的 Numpy 數組形狀改變及索引切片的文章就介紹到這瞭,更多相關Python Numpy 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 如何在向量化NumPy數組上進行移動窗口
- 初識python的numpy模塊
- Python NumPy教程之數組的創建詳解
- Python Numpy中ndarray的常見操作
- python數據分析Numpy庫的常用操作