У меня есть функция, которая может принимать np.ndarray формы (3,) или (3, N) или (3, N, M) и т. д. Я хочу добавить во входной массив массив формы (3,). На данный момент мне приходится вручную проверять форму входящего массива и при необходимости расширять добавляемый к нему массив, чтобы не получить ошибку трансляции. Есть ли в numpy функция, которая может расширить мой массив, чтобы разрешить трансляцию входного массива произвольной глубины?
def myfunction(input_array):
array_to_add = np.array([1, 2, 3])
if len(input_array.shape) == 1:
return input_array + array_to_add
elif len(input_array.shape) == 2:
return input_array + array_to_add[:, None]
elif len(input_array.shape) == 3:
return input_array + array_to_add[:, None, None]
...
Подробнее здесь: https://stackoverflow.com/questions/787 ... able-depth