Since V 12.2 we have ArrayReduce
From the documentation:
"Array reduction, also called array aggregation, is used to compute functions such as Mean, Total or StandardDeviation along specific dimensions of an array."
mat =
{{a, b, c},
{d, e, f},
{g, h, i}};
1. Apply a function along rows
ArrayReduce[f, mat, 2]
gives
{f[{a, b, c}],
f[{d, e, f}],
f[{g, h, i}]}
This corresponds to
ArrayReduce[Total, mat, 2] == Total[mat, {2}]
(* True *)
and
f /@ mat == ArrayReduce[f, mat, 2]
(* True *)
2. Apply a function along columns
ArrayReduce[f, mat, 1]
{f[{a, d, g}],
f[{b, e, h}],
f[{c, f, i}]}
This replaces Map and Transpose:
ArrayReduce[f, mat, 1] == Map[f] @ Transpose[mat]
(* True *)
3. AggregationLayer
For deeply nested lists we have
AggregationLayer, for which I gave some examples here:
Elegant operations on matrix rows and columns
Totalsum along the columns. – Mr Alpha Jan 27 '13 at 12:19