【发布时间】:2023-02-25 03:54:00
【问题描述】:
我想在给定的索引中找到满足 2 个条件的所有索引。 像下面这样,
# the given indexes: id
id = np.array([4,6,2,3,1,9])
array1 = np.array([1,3,5,3,2,3,1,1,3,6,7,9])
array2 = np.array([1,3,1,1,3,3,6,7,9,5,3,2])
threshold1 = 1
threshold2 = 2
Result = id[(threshold1 < array1[id]) & (threshold2 < array2[id])]
print(Result)
-> [4 1 9]
由于我需要在 for 循环中计算结果,因此我想找到一种更快的方法来完成它。 有什么建议吗? 另外,在 for 循环中使用 np.array 或 np.where 似乎很慢,我应该在列表中这样做吗?
多谢。
【问题讨论】:
-
“在 for 循环中计算结果”——循环的是什么?显示那个循环
-
通常使用 numpy 的操作非常快(可能比某些常规 python 函数更快)。您可能需要以某种方式降低搜索的复杂性。
-
请阐明您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。