Формирование матрицы путем суммирования двух массивов по элементам-массивам с использованием NumPy - PullRequest
0 голосов
/ 14 декабря 2018

Допустим, у меня есть следующие массивы NumPy:

i = array([2, 4, 5])
j = array([0, 1, 2])

Я хотел бы иметь очень эффективный метод (встроенный, если возможно) для суммирования этих векторов и вывода, который выглядит следующим образом:

[[2 4 5]
 [3 5 6]
 [4 6 7]]

Таким образом, каждый столбец - это массив j, к которому добавлен k-й элемент i (в данном случае k = 0, 1, 2)

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Или с broadcasting:

In [272]: i[:,None]+j
Out[272]: 
array([[2, 3, 4],
       [4, 5, 6],
       [5, 6, 7]])

i[:,None] создает массив (3,1), который транслирует с (3,) (или (1,3)), чтобы получить (3,3).

0 голосов
/ 14 декабря 2018

Использование numpy.add.outer.

>>> import numpy as np                                                                                                 
>>> i = np.array([2, 4, 5])                                                                                            
>>> j = np.array([0, 1, 2])                                                                                            
>>>                                                                                                                    
>>> np.add.outer(j, i)                                                                                                 
array([[2, 4, 5],
       [3, 5, 6],
       [4, 6, 7]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...