0
Я попробовал второй пример ниже, и это не сработало, но пример небольшого масштаба для деления массива numpy с другим отлично работает. Какая разница? Как я могу заставить фактическое подразделение работать?Разделение многообразного многомерного массива различной формы
Небольшой масштаб пример того, что я пытаюсь сделать:
>>> import numpy as np
>>> a = np.asarray([[1, 2, 3], [4, 5, 6]])
>>> b = np.asarray([2, 2, 2])
>>> a/b # works as expected
array([[0, 1, 1],
[2, 2, 3]])
Фактическое разделение, что я пытаюсь получить работу
>>> a = np.random.random((9, 31, 2, 5))
>>> b = np.random.random((9, 31, 2))
>>> a/b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (9,31,2,5) (9,31,2)
Подумайте, что вам не хватает третьего измерения для b ... Попробуйте переустановить код в ответе – Alex
Любая идея о том, как преобразовать фигуру из '(9, 31, 2)' to '(9, 31, 2, 1) '? – orange
Sure 'b = b.reshape (9, 31, 2, 1)' или 'b = np.expand_dims (b, -1)' – Alex