我想生成一个由种子播种的10个数字的伪随机列表。我只希望这个列表有1s和-1s,每个列表的概率为0.5。
import numpy as np
np.random.seed(0)
np.random.randint(2, size=(10,))
我得不到1s和-1s的分布,只有1s和0s ......我不知道 如果每个数字的概率是1/2。
有任何线索吗?
答案 0 :(得分:1)
正如@jtbandes所说,np.random.choice
功能会有所帮助:
import numpy as np
np.random.seed(0)
np.random.choice([-1,1], size=(10,))
答案 1 :(得分:0)
你可以检查随机数生成器:
np.count_nonzero(np.random.randint(2, size=(1000000,)))
Out[201]: 499522
你可以做一个简单的算术运算来将0,1转换为-1,1
np.random.randint(2, size=(10,))*2-1
Out[202]: array([ 1, -1, 1, -1, 1, -1, -1, 1, 1, -1])