首頁技術(shù)文章正文

科學(xué)計(jì)算庫NumPy:花式索引的基本使用

更新時間:2022-10-28 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  花式索引是NumPy的一個術(shù)語,是指將整數(shù)數(shù)組或列表作為索引,然后根據(jù)索引數(shù)組或索引列表的每個元素作為目標(biāo)數(shù)組的下標(biāo)再進(jìn)行取值。

  當(dāng)使用一維數(shù)組或列表作為索引時,如果使用索引要操作的目標(biāo)對象是一維數(shù)組,則獲取的結(jié)果是對應(yīng)下標(biāo)的元素;如果要操作的目標(biāo)對象是一個二維數(shù)組,則獲取的結(jié)果是對應(yīng)下標(biāo)的元素;如果要操作的目標(biāo)對象是一個二維數(shù)組,則獲取的結(jié)果就是對應(yīng)下標(biāo)的一行數(shù)據(jù)。

  例如,創(chuàng)建一個4行4列的二維數(shù)組,示例代碼如下。

In [67]: import numpy as np
In [68]: demo_arr=np.empty((4, 4))       # 創(chuàng)建一個空數(shù)組
for i in range(4):
         demo_arr[i]=np.arange(i, i+4)   # 動態(tài)地為數(shù)組添加元素
In [69]: demo_arr
array([[0., 1., 2., 3.],
       [1., 2., 3., 4.],
       [2., 3., 4., 5.],
       [3., 4., 5., 6.]])

  將[0,2]作為索引,分別獲取demo_arr中索引0對應(yīng)的一行數(shù)據(jù)以及索引2對應(yīng)的一行數(shù)據(jù)示例代碼如下。

In [70]: demo_arr[[0, 2]]                # 獲取索引為[0,2]的元素
Out[70]:
array([[0., 1., 2., 3.],
       [2., 3., 4., 5.]])

  上述操作的相關(guān)示意圖如圖2-5所示。

  如果使用兩個花式索引操作數(shù)組時,即兩個列表或數(shù)組,則會將第1個作為行索引,第2個作為列索引,通過二維數(shù)組索引的方式,選取其對應(yīng)位置的元素,示例代碼如下。

In [71]: demo_arr[[1, 3], [1, 2]]        # 獲取索引為(1,1)和(3,2)的元素
Out[71]:
array([2., 5.])

  上述操作的相關(guān)示意圖如圖2-6所示。

1666938314702_圖2-6花式索引圖示.png

demo_arr[[1,3],[1,2]]

  圖2-6 花式索引圖示(兩個數(shù)組當(dāng)索引)

分享到:
在線咨詢 我要報名
和我們在線交談!