работая на двух массивах разных форм - PullRequest
0 голосов
/ 06 октября 2018

предположим, что у меня есть 2 массива numpy следующим образом:

init = 100
a = np.append(init, np.zeros(5))
b = np.random.randn(5)

, поэтому a имеет форму (6,), а b имеет форму (5,).я хотел бы добавить (или выполнить какую-либо другую операцию, например возведение в степень) их вместе, чтобы получить новый массивный массив формы (6,), первое значение которого (100) одинаково, а остальные значения складываются вместе (в этомВ этом случае это будет выглядеть как добавление 100 к b, но это потому, что это игрушечный пример, инициализированный нулями. Попытка добавить как есть, приведет к:

a+b

ValueError: операнды не могут быть переданы вместес формами (6,) (5,)

существует ли однострочный способ использования широковещания, или здесь используется новая ось, чтобы обманным путём рассматривать их как совместимые формы?

желаемый результат:

массив ([100., 1.93947328, 0.12075821, 1.65319123, -0.29222052, -1.04465838])

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Не одна строка, а две короткие строки:

c = a.copy()
c[1:] += b
0 голосов
/ 06 октября 2018

Вы имеете в виду, что хотите сделать что-то подобное

np.append(a[0:1], a[1:,] + b)

Каким вы хотите, чтобы был желаемый результат?Ответ, который я предоставил, выполняет это добавление brodcast, исключая строку 1 из a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...