numpy: суммирование каждого элемента массива numpy с каждым элементом другого - PullRequest
1 голос
/ 06 августа 2020

Я перехожу на python из Matlab. В Matlab, учитывая два вектора, которые не обязательно имеют одинаковую длину, их можно добавить, если один является вектором-строкой, а другой - вектором-столбцом.

v1 = [1 3 5 7]

v2 = [2 4 6]'

v1 + v2

ans =

 3     5     7     9
 5     7     9    11
 7     9    11    13

Я пытаюсь создать такое же поведение в python с двумя массивами numpy. Сначала пришло в голову зацикливание:

import numpy as np
v1 = np.array([1,3,5,7])
v2 = np.array([2,4,6])
v3 = np.empty((3,4,))
v3[:] = np.nan

for i in range(0,3):
    v3[i,:] = v1 + v2[i]

Есть ли более лаконичный и эффективный способ?

Ответы [ 2 ]

1 голос
/ 06 августа 2020
import numpy as np

v1 = np.array([1, 3, 5, 7])
v2 = np.array([2, 4, 6])

v1 + v2[:, None]

Подробнее о правилах трансляции numpy можно узнать .

0 голосов
/ 06 августа 2020

Попробуйте это:

for i in v2:
  z = []
  for j in v1:
    z.append(i+j)
  
  print(z)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...