I think you don't need to explicitly grab the ```numu_maps, nue_maps, numu_bar_maps, nuebar_maps``` from the ```flux_maps```, since we are using the same scheme for naming in the oscillation maps and the flux maps.
So instead of your definitions and ```nuX``` vs ```nuX_bar``` separation, I think you could just use a triple loop:

    for from_flavour in  ['nue','numu']:
        for to_flavour in ['nue','numu','nutau']:
            for cp in ['','_bar']:
                omap[to_flavour+cp] = flux_map[from_flavour+cp]*osc_prob_maps[from_flavour+cp][to_flavour+cp]

Even better if you can come up for a better variable name than ```cp``` to distinugish particles and anti-particles