Python 3.x Python numpy.random.binomial()函数
我正在尝试使用np.random.binomial()函数来模拟具有以下给定参数的一些抛硬币:Python 3.x Python numpy.random.binomial()函数,python-3.x,numpy,Python 3.x,Numpy,我正在尝试使用np.random.binomial()函数来模拟具有以下给定参数的一些抛硬币: 硬币数量=10 每枚硬币的投掷次数=1 头部P(H)=0.5“即公平硬币”的概率 审判次数=1000000 我使用了以下代码来获得结果: [守则] %%time tests = np.random.binomial(n=1, p=0.5, size=(int(1e6), 10)) test_sums = tests.sum(axis=1) # axis=1 to sum each row
- 硬币数量=10
- 每枚硬币的投掷次数=1
- 头部P(H)=0.5“即公平硬币”的概率
- 审判次数=1000000
%%time
tests = np.random.binomial(n=1, p=0.5, size=(int(1e6), 10))
test_sums = tests.sum(axis=1) # axis=1 to sum each row
(test_sums == 4).mean()
%%time
tests = np.random.binomial(n=10, p=0.5, size=int(1e6))
(tests == 4).mean()
[输出]
(Wall time: 248 ms)
0.204992
Wall time: 68.9 ms
0.2048
我的一位队友推荐了以下代码片段,它使用的代码更少,而且似乎更有效:
[守则]
%%time
tests = np.random.binomial(n=1, p=0.5, size=(int(1e6), 10))
test_sums = tests.sum(axis=1) # axis=1 to sum each row
(test_sums == 4).mean()
%%time
tests = np.random.binomial(n=10, p=0.5, size=int(1e6))
(tests == 4).mean()
[输出]
(Wall time: 248 ms)
0.204992
Wall time: 68.9 ms
0.2048
我什么时候可以使用以下任一选项:
tests = np.random.binomial(n=1, p=0.5, size=(int(1e6), 10))
tests = np.random.binomial(n=10, p=0.5, size=int(1e6))
你能告诉我这两种情况有什么不同吗?知道了这一点,我们可以说,结果是一样的。你的队友推荐的版本更有效,在数学上也相当。指定
n=10
告诉binomial
掷硬币10次,并返回“成功”的次数(可以定义为“头部”)。换言之,它的功能与代码相同,但只需一次函数调用。您的队友推荐的版本更高效,并且在数学上是等效的。指定n=10
告诉binomial
掷硬币10次,并返回“成功”的次数(可以定义为“头部”)。换句话说,它执行代码所执行的操作,但只需一个函数调用