NumPy 數組搜索
- 上一頁 NumPy 數組拆分
- 下一頁 NumPy 數組排序
搜索數組
您可以在數組中搜索(檢索)某個值,然后返回獲得匹配的索引。
要搜索數組,請使用 where()
方法。
實例
查找值為 4 的索引:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 4, 4]) x = np.where(arr == 4) print(x)
上例會返回一個元組:(array([3, 5, 6],)
意思就是值 4 出現在索引 3、5 和 6。
實例
查找值為偶數的索引:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) x = np.where(arr%2 == 0) print(x)
實例
查找值為奇數的索引:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) x = np.where(arr%2 == 1) print(x)
搜索排序
有一個名為 searchsorted()
的方法,該方法在數組中執行二進制搜索,并返回將在其中插入指定值以維持搜索順序的索引。
假定 searchsorted()
方法用于排序數組。
實例
查找應在其中插入值 7 的索引:
import numpy as np arr = np.array([6, 7, 8, 9]) x = np.searchsorted(arr, 7) print(x)
例子解釋:應該在索引 1 上插入數字 7,以保持排序順序。
該方法從左側開始搜索,并返回第一個索引,其中數字 7 不再大于下一個值。
從右側搜索
默認情況下,返回最左邊的索引,但是我們可以給定 side='right'
,以返回最右邊的索引。
實例
從右邊開始查找應該插入值 7 的索引:
import numpy as np arr = np.array([6, 7, 8, 9]) x = np.searchsorted(arr, 7, side='right') print(x)
例子解釋:應該在索引 2 上插入數字 7,以保持排序順序。
該方法從右邊開始搜索,并返回第一個索引,其中數字 7 不再小于下一個值。
多個值
要搜索多個值,請使用擁有指定值的數組。
實例
查找應在其中插入值 2、4 和 6 的索引:
import numpy as np arr = np.array([1, 3, 5, 7]) x = np.searchsorted(arr, [2, 4, 6]) print(x)
返回值是一個數組:[1 2 3]
包含三個索引,其中將在原始數組中插入 2、4、6 以維持順序。
- 上一頁 NumPy 數組拆分
- 下一頁 NumPy 數組排序