Python 查找两个数组之间更改值的索引

Python 查找两个数组之间更改值的索引,python,arrays,python-3.x,numpy,Python,Arrays,Python 3.x,Numpy,我可以通过比较两个数组找到更改值的索引吗 例如, array1 = [1, 2 ,3] array2 = [1, 2, 4] 我想通过比较这两个数组来找到变化值的索引。对于本例,这应该是2 我使用numpy比较两个数组。但我找不到更改值的索引。这是一个非numpy解决方案。您可以使用: 由于您使用的是NumPy,因此可以使用进行比较=操作员和使用: list(set(a1)-set(a2))给出集合中不存在的所有元素的列表a2 a1 = [1,2,3] a2 = [1,2,4] arr=lis

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

例如,

array1 = [1, 2 ,3]
array2 = [1, 2, 4]
我想通过比较这两个数组来找到变化值的索引。对于本例,这应该是
2


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

这是一个非numpy解决方案。您可以使用:


由于您使用的是NumPy,因此可以使用
进行比较=操作员和使用:

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

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

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

为了找到两个列表之间n个变化元素的索引,我们可以使用

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

这不管用。如果同一个元素可能出现两次,它可能会找到错误的索引。如果列表在不同的位置有相同的元素,它也不起作用。即使有效,这也是非常低效的。它要求每个不匹配的元素都有一个循环(索引
调用)。
array3 = np.where((array1-array2) != 0)
c = set(a) - set(b)
[a.index(i) for i in c]