In [1]: import numpy as np In [2]: nums = np.array([12, 37, 5, 42, 8, 3]) In [3]: even, odd = nums[nums % 2 == 0], nums[nums % 2 == 1] In [4]: print(even, odd) [12 42 8] [37 5 3]However I have tried a different apporach but strangely it didn't work. Eight is missing from the even list. And I don't know why. Here I pop() a number and put it to the even list if some condition. So the original list sould contain only odd numbers at the end. Doesn't work
In [1]: numbers = [12, 37, 5, 42, 8, 3] In [2]: even = [numbers.pop(numbers.index(n)) for n in numbers if n % 2 == 0] In [3]: even Out[3]: [12, 42]