Numpy: добавление n-мерного вектора в m-мерный вектор для получения (n, m) матрицы - PullRequest
0 голосов
/ 23 ноября 2018

Предположим, у меня есть массив [1,2,3,4,5].Я хочу "добавить" массив [2,4,6,8] к нему, чтобы я получил

[[3,5,7,9],
 [4,6,8,10],
 [5,7,9,11],
 [6,8,10,12],
 [7,9,11,13]]

(или его транспонирование).

Вероятно, есть функция для этогоно я не могу найти его, потому что не знаю, что искать.

1 Ответ

0 голосов
/ 23 ноября 2018

Как рекомендует @Divakar, лучший способ - использовать add.outer:

a1 = np.array([1,2,3,4,5])
a2 = np.array([2,4,6,8])

np.add.outer(a1,a2)

Но вы также можете явно транслировать ваш a1 массив в нужную форму,затем добавьте к a2:

a1[:,None]+a2
# essentially equivalent to:
# a1.reshape(-1,1)+a2

Оба производят:

array([[ 3,  5,  7,  9],
       [ 4,  6,  8, 10],
       [ 5,  7,  9, 11],
       [ 6,  8, 10, 12],
       [ 7,  9, 11, 13]])
...