Create an rng object with np.random.default_rng(), you can seed it for reproducible results. You can draw samples from probability distributions, including from the binomial and normal distributions.
You might be familiar with how Python and C can work together, by way of projects like Cython. The new PythoC project has a unique twist on working with both languages: it lets you write ...