Если вы используете numpy, проверьте следующее:
Немного неясно, что вы подразумеваете под «увеличением сложности и времени». Конечно, вы намерены уменьшить сложность и время.
Если вы не хотите создать массивную матрицу a для l oop, вероятно, все в порядке:
import random
res = []
p = 0.5
mean = 0
stddev = 1
n = 5
for i in range(0, n):
res.append([])
for j in range(0, n):
if random.random() >= p:
res[i].append(random.normalvariate(mean, stddev))
else:
res[i].append(0)
print(res)