Oops, try again. Your function fails on purify([4, 5, 5, 4]). It returns [4, 5, 4] when it should return [4, 4].
for i in number:
if i % 2 != 0:
With each removed element, everything to the right shifts left. Since the current iterator position has already been tested, it moves on to the next, skipping the one that just slipped into the old position.