Python 3.x Python numpy.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

我正在尝试使用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
(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次,并返回“成功”的次数(可以定义为“头部”)。换句话说,它执行代码所执行的操作,但只需一个函数调用