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!

推薦閱讀: