code: def ix_(selection, shape):
      
  
      # normalisation
      selection = replace_ellipsis(selection, shape)
  
      # replace slice and int as these are not supported by numpy.ix_
      selection = [slice_to_range(dim_sel, dim_len) if isinstance(dim_sel, slice)
                   else [dim_sel] if is_integer(dim_sel)
                   else dim_sel
                   for dim_sel, dim_len in zip(selection, shape)]
  
      # now get numpy to convert to a coordinate selection
      selection = np.ix_(*selection)
  
      return selection
docs: Convert an orthogonal selection to a numpy advanced (fancy) selection, like numpy.ix_
      but with support for slices and single ints.