如何生成1和-1的伪随机列表?

时间:2017-02-02 08:10:33

标签: python numpy

我想生成一个由种子播种的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。

有任何线索吗?

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])