簡體   English   中英

檢查 1D numpy 數組是否在 1D numpy arrays 和 None 的列表中

[英]Checking if 1D numpy array in a list of 1D numpy arrays and None

我想檢查 1D numpy 數組是否在 1D numpy arrays 和 None 的列表中是否為 if 條件。

我是這樣做的:

arr = np.array([1,2])
lst = [np.array([1,2]), np.array([3,4]), None, None]

if list(arr) in [list(i) for i in lst if i is not None]:
    print("Yes")

else:
    print("No")

但是列表和 numpy 數組的大小可以大得多,那么有沒有更有效的方法來做到這一點? 而不是將每個 numpy 數組更改為列表。

您無法避免通過lst進行一次迭代以某種方式修改其元素(numpy 數組)。 但不是從 numpy arrays 創建列表列表,而是創建一組元組並將其存儲: set_of_arrays_as_tuples = set([tuple(array) for array in lst if array is not None])

然后,任何后續查詢以檢查集合中的存在性都可以在常數時間內完成,而不是線性時間:

tuple(arr) in set_of_arrays_as_tuples

-> 真

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM