У меня есть ось Ось 3, элементы которой 3-мерные. Я хотел бы усреднить их и вернуть ту же форму массива. Нормальная средняя функция удаляет 3 размеры и заменить его в среднем (как и ожидалось):средняя матрица numpy, но сохраняю форму
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-массив?
Спасибо.
большой поклонник того, что вы хотите видеть в этом вопросе. – lukecampbell
В большинстве случаев я могу себе представить, что трансляция сделает это, не требуя 3d-массива. – tillsten