Применение карты к нескольким 2-мерным массивам в Python - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь объединить два двумерных массива в Python, используя map () и функцию с условием if.

Когда я опускаю оператор if, map () работает так, как я ожидал.

Это работает (но нужное условие if не выполняется):

list1 = np.array([np.array([1,2,0]),np.array([1,2,3]),np.array([0,0,3])])
list2 = np.array([np.array([4,5,6]),np.array([4,5,6]),np.array([4,5,6])])
collapsed = list(map(lambda x,y:  x + y, list1, list2))

И возвращает:

collapsed = [array([5, 7, 6]), array([5, 7, 9]), array([4, 5, 9])]

Следующие возвращаемые значения:

"ValueError: Значение истинности массива с более чем одним элементом неоднозначно."

collapsed = list(map(lambda x,y:  x + y if x == 0 else x, list1, list2))

Когда то, что я ожидал, было:

collapsed = [[1,2,6][1,2,3][4,5,3]]

1 Ответ

0 голосов
/ 11 июля 2019

Я думаю, вы ищете что-то вроде этого:

[[list(map(lambda x,y:  x + y if x == 0 else x, a, b))] for a, b in zip(la, lb)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...