Numpy Добавление двух векторов с разными размерами - PullRequest
23 голосов
/ 25 октября 2011

Если у меня есть два массива разных размеров, как я могу их наложить.

a = numpy([0, 10, 20, 30])
b = numpy([20, 30, 40, 50, 60, 70])

Какой самый простой способ добавить эти два вектора для создания нового вектора (20, 40, 60, 80, 60, 70)?

Это мой общий вопрос. Для фона я специально применяю функцию преобразования Грина, и мне нужно наложить результаты для каждого временного шага в оценке на ранее накопленные ответы.

Ответы [ 2 ]

24 голосов
/ 25 октября 2011

Это может быть то, что вы ищете

if len(a) < len(b):
    c = b.copy()
    c[:len(a)] += a
else:
    c = a.copy()
    c[:len(b)] += b

в основном вы копируете более длинный и затем добавляете на место более короткий

12 голосов
/ 25 октября 2011

Если вы знаете, что b - это высшее измерение, тогда:

>>> a.resize(b.shape)
>>> c = a+b

- это все, что вам нужно.

...