Я пытаюсь сгенерировать массив случайных значений numpy, удовлетворяющий некоторым дополнительным ограничениям, и для заданной фиксированной длины N. Лучше:
Составьте список (выборка один раз), затем преобразуйте его в массив numpy
while len(list)<N:
num=np.random.rand(1)
if num <.5:
list.append(np.random.rand(1))
x=np.array(list)
Используйте векторизованный код и добавить в массив:
x=np.array([])
while x.shape[0]<N:
x=np.append(x,np.random.rand(int(N/2))
x=x[x<.5][:N]
Превышите длину массива, затем попробуйте, пока замаскированная версия не станет достаточно длинной.
x=np.array([])
while x.shape[0]<N:
x=np.random.rand(4*N)
x=x[x<.5][:N]
Пустышка. Целых 1/2 и 4 во втором и третьем примере.






num <.5 просто фиктивное или фактическое ограничение?