The buffersize of the nditer is actually in itemsize units. It probably doesn't matter much, but the CPU-cache logic might get broken by it :). You could use 'zerosize_ok' instead of array.size > 0 if you like, but I don't care.