Уверен, что это очень простой вопрос. Однако даже после прохождения нескольких обучающих страниц и the official documentation я не могу понять логику добавления в массивах numpy. Рассмотрим, например, следующее:Невозможно понять добавление массива numpy
In [5]: a = np.array([1, 2, 3])
In [6]: b = np.array([1, 2, 3, 4])
In [7]: a + b
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-7-f96fb8f649b6> in <module>()
----> 1 a + b
ValueError: operands could not be broadcast together with shapes (3,) (4,)
Это совершенно нормально. Поскольку массивы имеют разные формы, мы не ожидаем, что будут выполняться операции «elementwise». Теперь рассмотрим следующее:
In [12]: np.array([1]) + np.array([1, 2, 3, 4])
Out[12]: array([2, 3, 4, 5])
Внезапно возникают проблемы с различными формами. Также это не похоже на «элементарное» действие для меня. Это, по-видимому, сохраняется даже в следующем случае:
In [15]: np.array([[1], [2]]) + np.array([1, 2, 3, 4])
Out[15]:
array([[2, 3, 4, 5],
[3, 4, 5, 6]])
Я не могу понять логику этих выходов и ошибок.
Все это основано на аксиях и на том, что внутри каждой оси массива с большей осью не должно быть более одного элемента. В противном случае они должны быть в отдельных массивах. – Kasramvd