Вопрос может показаться громоздким, но он очень простой.
У меня есть два массива:
a1
и
a2
. В массиве
a1
все элементы типа int, в массиве
a2
есть и int, и str (в случайном порядке там разбросаны).
Если написать
for i in list(zip(a1, a2)): print(i)
, то вывод примерно такой:
...
(array([ 1.]), array([ nan]))
(array([ 1.]), array([ 2.]))
(array([ 2.]), array([ nan]))
(array([ 1.]), array([ nan]))
(array([ 2.]), array([ 1.]))
...
Я хочу, чтобы в случае, если второй элемент пары - целое число, то первый элемент пары заменить на второй элемент пары. Если приводить аналогию с примером выше, то вывод ожидаемо такой:
array([ 1.]
[ 2.]
[ 2.]
[ 1.]
[ 1.])
Я пытался написать такой код, он не работает (ошибок не выдаёт, но по сути ничего не меняет):
for i in list(zip(a1, a2)):
if isinstance(i[1], int):
i[0] == i[1]
List comprehensions выдаёт тот же результат.
a3 = [i[0] == i[1] for i in list(zip(a1, a2)) if isinsance(i[1], int)]
Как написать правильно и в чем моя ошибка?