繁体   English   中英

查找两个数组之间的值变化的索引

[英]Find index of changing value between two arrays

我可以通过比较两个数组来找到更改值的索引吗?

对于exaple;

array1 = [1, 2 ,3]
array2 = [1, 2, 4]

我想通过比较这两个数组来找到变化值的索引。 对于这个例子,这应该是2

我正在使用numpy来比较两个数组。 但我找不到更改值的索引。

这是一个非笨拙的解决方案。 你可以使用带zip() enumerate() zip()

array1 = [1,2,3]
array2 = [1,2,4]

print([i for i, (x, y) in enumerate(zip(array1, array2)) if x != y])
# [2]

由于您使用的是NumPy,因此可以使用!=运算符进行比较并使用np.flatnonzero

array1 = np.array([1,2,3])
array2 = np.array([1,2,4])

res = np.flatnonzero(array1 != array2)

print(res)
# array([2], dtype=int64)

您可以使用numpy的where函数来执行此操作

array3 = np.where((array1-array2) != 0)

要查找两个列表之间的n个更改元素的索引,我们可以使用

c = set(a) - set(b)
[a.index(i) for i in c]

list(set(a1)-set(a2))给出集合a2中不存在的所有元素的列表

a1 = [1,2,3]
a2 = [1,2,4]
arr=list(set(a1)-set(a2)) #arr=[3]
print(a1.index(arr[0]))   #2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM