У меня есть следующие 2D-массив:NumPy вычитать/добавить 1d массив из 2d массива
a = array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12],
[13, 14, 15]])
и другой 1D-массив:
b = array([ 1, 2, 3, 4, 5])
, то я хочу, чтобы вычислить что-то вроде
c = a - b
с целью получения:
c = array([[0, 1, 2],
[2, 3, 4],
[4, 5, 6],
[6, 7, 8],
[8, 9, 10]])
, но вместо этого я получаю сообщение об ошибке:
Traceback (most recent call last):
Python Shell, prompt 79, line 1
ValueError: operands could not be broadcast together with shapes (5,3) (5,)
Я прочитал правила вещания, но didn't получить любой мудрее. Я мог бы сделать обходной путь с for-loops или подобным, но должен быть прямой путь. Спасибо
Do 'а - Ь [:, None] 'или' a - b [:, np.newaxis] ', который преобразует' b' в 2D-массив, добавляя измерение, а затем выполняйте вычитание. – Divakar
@ Divakar вы должны сделать ответ из своего комментария. –
Не является ли таким основным вопросом, как это описано выше на 'SO'? Dup-молот? :) – Divakar