У меня есть 3-осевой массив Numpy, элементы которого трехмерны. Я хотел бы усреднить их и вернуть ту же форму массива. Обычная функция среднего значения удаляет 3 измерения и заменяет его средним (как и ожидалось):
a = np.array([[[0.1, 0.2, 0.3], [0.2, 0.3, 0.4]],
[[0.4, 0.4, 0.4], [0.7, 0.6, 0.8]]], np.float32)
b = np.average(a, axis=2)
# b = [[0.2, 0.3],
# [0.4, 0.7]]
Требуется результат:
# b = [[[0.2, 0.2, 0.2], [0.3, 0.3, 0.3]],
# [[0.4, 0.4, 0.4], [0.7, 0.7, 0.7]]]
Можете ли вы сделать это элегантно, или мне просто нужно перебирать массив в Python (что будет намного медленнее по сравнению с мощной функцией Numpy).
Можете ли вы установить аргумент Dtype для функции np.mean, возможно, в 1D-массив?
Спасибо.