Используйте axis
аргумент для уменьшения среднего значения вдоль последней оси, а затем передайте в исходную форму с np.broadcast_to
-
np.broadcast_to(images.mean(axis=-1,keepdims=True),images.shape)
Тоnp.broadcast_to
помогает нам в достижении эффективности использования памяти, предоставляя нам оригинальный фасонный вид усредненного массива. Если вам нужен конечный вывод с собственным пространством памяти, добавьте .copy()
-
np.broadcast_to(images.mean(axis=-1,keepdims=True),images.shape).copy()
В качестве альтернативы мы можем использовать np.repeat
-
images.mean(axis=-1,keepdims=True).repeat(images.shape[-1],axis=-1)
Опубликованные решения работают дляndarrays общих размеров. Следовательно, будет работать с одним изображением или набором изображений с желаемым результатом усреднения по последней оси, транслируемой / реплицируемой / повторяемой по той же оси.
Также обратите внимание, что конечный результат будет float
dtype. Таким образом, мы можем захотеть преобразовать или / и округлить до int для обычного image-dtype вывода unsigned-int dtype.