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