【发布时间】:2019-09-26 18:57:07
【问题描述】:
我会先说我是 Python 新手,但不是 OOP 新手。
我正在使用numpy.where 查找满足特定条件的 n 个数组中的索引,特别是如果数组中的值大于 x。
我想要做的是找到所有 n 个数组都满足该条件的索引 - 所以在每个数组中,在索引 y 处,元素大于 x。
n0[y] > x
n1[y] > x
n2[y] > x
n3[y] > x
例如,如果我使用 numpy.where 后的数组是:
a = [0,1,2,3,4,5,6,7,8,9,10]
b = [0,2,4,6,8,10,12,14,16,18,20]
c = [0,2,3,5,7,11,13,17,19,23]
d = [0,1,2,3,5,8,13,21,34,55]
我想得到输出
[0,2]
我找到了函数numpy.isin,它似乎只对两个数组做了我想要的。我不知道如何将其扩展到两个以上的数组,并且不确定是否可能。
这是我的代码的开头,我在其中生成符合我的标准的索引:
n = np.empty([0])
n = np.append(n,np.where(sensor[i] > x)[0])
我有点卡住了。我知道我可以创建一个具有与原始数组相同数量的索引的新数组,并将其中的值设置为 true 或 false,但这不是很有效,而且我的原始数组有 25k+ 个元素。
【问题讨论】:
-
你能把这个作为输入和预期输出的例子吗?如果没有
sensor的示例暗示您提供的a,b,c,d,则很难解决此问题
标签: python arrays python-2.7 numpy