gpt4 book ai didi

python - 如何找到 n 个数组中每个数组中包含的值(Python)?

转载 作者:太空宇宙 更新时间:2023-11-03 20:55:41 25 4
gpt4 key购买 nike

我会在开头说我是 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+ 个元素长。

最佳答案

要找到n个不同数组的交集,首先将它们全部转换为集合。那么就可以申请set.intersection() 。对于 abcd 的示例,只需执行以下操作:

set.intersection(*map(set, [a,b,c,d]))

这将产生一组 {0, 2}

关于python - 如何找到 n 个数组中每个数组中包含的值(Python)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56050945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com