Finally taking a fresh look at this. I'm not sure exactly what needs to be pulled from iterator_loop, especially since iterator_loop uses a different type of iterator created by NpyIter_AdvancedNew (and which seems to take care of any buffering and casting needed?). Reusing the array operands for each iteration would be easier, but is there a way to set the data pointer of an array? Or am I misunderstanding what you're suggestion?