a numpy решение. Используйте np.clip
и np.repeat
n = 2
a = np.asarray([1,2,3,4,5])
cond = (a % 2) == 0 #condition is True on even numbers
m = np.repeat(a, np.clip(cond * n, a_min=1, a_max=None))
In [124]: m
Out[124]: array([1, 2, 2, 3, 4, 4, 5])
Или вы можете использовать numpy ndarray.clip
вместо np.clip
для более короткой команды
m = np.repeat(a, (cond * n).clip(min=1))