如何檢查NumPy陣列中是否存在指定的值?


Python語言中有很多模組和函式可以用來檢查給定NumPy陣列中是否存在指定的值。

NumPy是Numerical Python的縮寫,是一個用於執行數學、統計和科學計算的Python庫。NumPy陣列的結果以陣列的形式返回。陣列可以建立一維、二維,甚至高達32維。

NumPy庫提供了許多模組和函式,幫助我們執行科學計算和數學計算。

讓我們逐一看看檢查NumPy陣列中是否存在指定值的每種方法。

使用“in”關鍵字

下面的例子檢查指定的值是否存在於NumPy陣列中。我們有一個名為in的關鍵字,用於檢查特定元素是否存在於定義的資料結構中。

import numpy as np
arr = np.array([10,30,2,40.3,56,456,32,4])
print("The Original array:",arr)
if 4 in arr:
    print("The element is present in the array.")
else:
    print("The element is not present in the array")

輸出

執行上述程式碼後,將生成以下輸出,它顯示該元素存在於陣列中。

The Original array: [ 10.   30.    2.   40.3  56.  456.   32.    4. ]
The element is present in the array.

示例

這是另一個例子,用於檢查給定值是否存在於定義的陣列中。

import numpy as np
arr = np.array([10,30,2,40.3,56,4,56,3,2,4])
print("The Original array:",arr)
if 4 or 56 in arr:
    print("The element is present in the array.")
else:
    print("The element is not present in the array")

輸出

以下是使用“in”關鍵字檢查給定值是否存在於陣列中的輸出。

The Original array: [10.  30.   2.  40.3 56.   4.  56.   3.   2.   4. ]
The element is present in the array.

使用np.isin()函式

NumPy庫提供了一個名為isin()的函式,用於檢查給定值是否存在於定義的陣列中。要檢查的值也應該為陣列格式。輸出將以布林值True或False的形式返回。

示例

在這個例子中,我們將要檢查的陣列和值傳遞給numpy庫的isin()函式,然後輸出將以布林值True或False的形式返回。

import numpy as np
arr = np.array([[10,30,2,40.3],[56,4,56,3]])
print("The Original array:",arr)
values = np.array([10,30,2,40.3])
output = np.isin(arr, values)
print(output)

輸出

以下是isin()函式的輸出,它返回布林值。

The Original array: [[10.  30.   2.  40.3]
 [56.   4.  56.   3. ]]
[[ True  True  True  True]
 [False False False False]]

示例

下面的例子顯示如何檢查定義的陣列中是否存在指定的值。

import numpy as np
arr = np.array([[[10,30],[2,40.3]],[[56,4],[56,3]]])
print("The Original array:",arr)
values = np.array([1,40.3])
output = np.isin(arr, values)
print(output)

輸出

以下是上述程式碼的輸出。

The Original array: [[[10.  30. ]
  [ 2.  40.3]]

 [[56.   4. ]
  [56.   3. ]]]
[[[False False]
  [False  True]]

 [[False False]
  [False False]]]

使用np.where()函式

where()是NumPy庫提供的一個函式,允許你在NumPy陣列中搜索特定值。此函式返回陣列中存在該值的元素的索引。

示例

要檢查NumPy陣列中是否存在特定值,我們使用NumPy陣列提供的where()函式。我們將陣列和要搜尋的值作為引數傳遞給此函式。

import numpy as np
arr = np.array([[[10,30],[2,40.3]],[[56,4],[56,3]]])
print("The Original array:",arr)
output = np.where(arr == 3)
print(output)

輸出

執行上述程式碼後,我們將看到以下輸出:

The Original array: [[[10.  30. ]
  [ 2.  40.3]]

 [[56.   4. ]
  [56.   3. ]]]
(array([1]), array([1]), array([1]))

更新於:2023年8月9日

7K+ 瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告