The best I can come up with at the moment is:

```

def fix_lons(a):
    """
    Fix the given longitudes, in place, into the range ``[-180, 180]``.

    """
    # Shift the lons accross by 180. They now represent (lon + 180)
    a += 180
    # Move the lons to >0.
    a[a < 0] -= (a[a < 0] // 360) * 360
    # Move the array to the region 0 to 360.
    a[a > 360] -= (a[a > 360] // 360) * 360
    # Shift the (lon + 180) back to longitudes.
    a -= 180
    return a
```

I'm sure this could be improved even further though.