Если я правильно понимаю, вам нужна только минимальная длина обоих массивов, N
.
Получив ее, вам не нужно трогать исходные массивы, вы можете просто создать новыйone и shuffle это так:
import numpy as np
N = 10
a = np.concatenate((np.ones(N), np.zeros(N)))
np.random.shuffle(a)
Вот пример в консоли:
>>> import numpy as np
>>> N = 10
>>> a = np.concatenate((np.ones(N), np.zeros(N)))
>>> a
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0.])
>>> np.random.shuffle(a)
>>> a
array([0., 0., 1., 1., 1., 0., 1., 0., 0., 0., 0., 0., 1., 1., 0., 1., 1.,
0., 1., 1.])
>>> len(a)
20
>>> sum(a)
10.0