The implementation of .map_axis/_mut() panics when the specified axis is zero-length. Ideally, we'd just apply mapping to empty views instead.
Example:
extern crate ndarray;
use ndarray::prelude::*;
fn main() {
let a = Array2::<f32>::zeros((0, 2));
a.map_axis(Axis(0), |_| {});
}