Найти индекс изменения значения между двумя массивами - PullRequest
0 голосов
/ 02 февраля 2019

Можно ли найти индекс измененного значения, сравнивая два массива?

Например,

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

Я хочу найти индекс изменяющегося значения, сравнивая эти два массива.Для этого примера это должно быть 2.

. Я использую numpy для сравнения двух массивов.Но я не могу найти индекс измененных значений.

Ответы [ 5 ]

0 голосов
/ 02 февраля 2019

Чтобы найти индекс n изменяющихся элементов между двумя списками, мы можем использовать

c = set(a) - set(b)
[a.index(i) for i in c]
0 голосов
/ 02 февраля 2019

Вы можете использовать функцию numpy where, чтобы сделать это

array3 = np.where((array1-array2) != 0)
0 голосов
/ 02 февраля 2019

Поскольку вы используете 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)
0 голосов
/ 02 февраля 2019

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
0 голосов
/ 02 февраля 2019

Это не простое решение.Вы можете использовать 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...