For the functions above. I personally prefer to use explicit functions instead of advanced indexing to be sure no copy happens. In you case, you can replace complex_input[...,0] by complex_input.select(-1, 0). .select() never does copy and is really cheap (cheaper than advanced indexing) so that should be optional.