我想用numpy的random. rand产生一个0或1。np.random.rand()会产生0到1之间的随机浮点数,但不只是0或1。
np.random.rand()
kq4fsx7k1#
可以将np.random.choice与[0,1]列表一起使用,也可以将np.random.radint与0,2范围一起使用
[0,1]
0,2
In [1]: import numpy as np In [2]: np.random.choice([0,1]) Out[2]: 0 In [5]: np.random.choice([0,1]) Out[5]: 1 In [8]: np.random.randint(2) Out[8]: 0 In [9]: np.random.randint(2) Out[9]: 1
也可以使用random模块来实现这些函数的等效功能
fzwojiic2#
您可以使用numpy.random.random_integers
numpy.random.random_integers
random_int= np.random.random_integers(0,1) print (random_int)
hi3rlvi23#
您可以使用np.random.randint(low, high=None, size=None)。
np.random.randint(low, high=None, size=None)
>>> np.random.randint(0,2,10) array([0, 1, 1, 0, 1, 1, 0, 0, 1, 0]) >>> np.random.randint(2) 0 >>> np.random.randint(2) 1
有关详细信息,请参阅https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randint.html
628mspwn4#
你应该考虑使用np.random.randint()这个函数需要一个范围作为输入。例如,
np.random.randint()
>>> np.random.randint(2)
这将为您提供0或1的输出
0
1
q35jwt9p5#
为了补充其他答案,可以简单地做
p_True = 0.5 # 50% probability that you get 1 your_bool = p_True >= np.random.rand() # >= because rand returns a float between 0 and 1, excluding 1.
通过改变p_true,可以得到有偏差的样本。
p_true
dpiehjr46#
是否有理由专门使用np.random.rand?此函数输出一个浮点数,如问题和前面的答案中所述,您需要阈值处理来获得一个int。scipy.stats.bernoulli(p)直接输出概率为p的1和概率为1-p的0。
np.random.rand
scipy.stats.bernoulli(p)
p
1-p
krcsximq7#
你可以使用np.random.choice和一个[0,1]的列表以及一个大小来得到一个随机选择矩阵,如下所示:
In [1]: import numpy as np In [2]: np.random.choice([0,1], size=(3,4)) Out[2]: array([[1, 0, 0, 0], [0, 1, 1, 0], [1, 1, 1, 1]])
7条答案
按热度按时间kq4fsx7k1#
可以将np.random.choice与
[0,1]
列表一起使用,也可以将np.random.radint与0,2
范围一起使用也可以使用random模块来实现这些函数的等效功能
fzwojiic2#
您可以使用
numpy.random.random_integers
hi3rlvi23#
您可以使用
np.random.randint(low, high=None, size=None)
。有关详细信息,请参阅https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randint.html
628mspwn4#
你应该考虑使用
np.random.randint()
这个函数需要一个范围作为输入。例如,这将为您提供
0
或1
的输出q35jwt9p5#
为了补充其他答案,可以简单地做
通过改变
p_true
,可以得到有偏差的样本。dpiehjr46#
是否有理由专门使用
np.random.rand
?此函数输出一个浮点数,如问题和前面的答案中所述,您需要阈值处理来获得一个int。scipy.stats.bernoulli(p)
直接输出概率为p
的1和概率为1-p
的0。krcsximq7#
你可以使用np.random.choice和一个[0,1]的列表以及一个大小来得到一个随机选择矩阵,如下所示: