In a nutshell, it's the difference between numpy's "fancy-indexing" and the style of indexing used by Iris and the netCDF4 module. So if you're wrapping a numpy array you have to use a NumpyArrayAdapater, but if you're wrapping a netCDF4.Variable then it's more efficient to use an OrthoArrayAdapater.