[英]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.