I want to generate a random array of size N which only contains 0 and 1, I want my array to have some ratio between 0 and 1. For example, 90% of the array be 1 and the remaining 10% be 0 (I want this 90% to be random along with the whole array).
right now I have:
randomLabel = np.random.randint(2, size=numbers)
But I can't control the ratio between 0 and 1.
If you want an exact 1:9 ratio:
nums = numpy.ones(1000)
nums[:100] = 0
numpy.random.shuffle(nums)
If you want independent 10% probabilities:
nums = numpy.random.choice([0, 1], size=1000, p=[.1, .9])
or
nums = (numpy.random.rand(1000) > 0.1).astype(int)
You could use a binomial distribution:
np.random.binomial(n=1, p=0.9, size=[1000])
Without using numpy, you could do as follows:
import random
percent = 90
nums = percent * [1] + (100 - percent) * [0]
random.shuffle(nums)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With