Python binom.pmf仅返回零
代码: 出于某种原因,在每次迭代之后,Python binom.pmf仅返回零,python,scipy,Python,Scipy,代码: 出于某种原因,在每次迭代之后,p[i]等于零。然而,当我手动键入(例如)binom.pmf(10,10,19/20)时,我得到了一个非零的答案。这里有什么问题 这似乎发生在函数调用中对binom.pmf的任何调用中。使用p=np.arange(0,n+1)使用整数数组0,…,n初始化p。这使得binom.pmf(…)在分配给p[i]时转换为整数。解决方案是使p成为一个浮点数组np.zeros()会创建一个浮点数组。同样的问题也适用于利润 将其放入代码中看起来如下所示: 从scipy.st
p[i]
等于零。然而,当我手动键入(例如)binom.pmf(10,10,19/20)
时,我得到了一个非零的答案。这里有什么问题
这似乎发生在函数调用中对binom.pmf
的任何调用中。使用p=np.arange(0,n+1)
使用整数数组0,…,n
初始化p
。这使得binom.pmf(…)
在分配给p[i]
时转换为整数。解决方案是使p
成为一个浮点数组<默认情况下,code>np.zeros()会创建一个浮点数组。同样的问题也适用于利润
将其放入代码中看起来如下所示:
从scipy.stats导入binom
将numpy作为np导入
def预期利润(n):
n=10
总数=0
X=np.arange(0,n+1)
p=np.零(n+1,dtype=float)
利润=np.零(n+1,数据类型=浮动)
对于范围(1,n+1)内的i:
p[i]=binom.pmf(X[i],n,19/20)
如果X[i]>100:
利润[i]=50*n-60*(X[i]-100)
其他:
利润[i]=50*n
总额+=利润[i]*p[i]
预期利润(10)
使用p=np.arange(0,n+1)
使用整数数组0,…,n
初始化p
。这使得binom.pmf(…)
在分配给p[i]
时转换为整数。解决方案是使p
成为一个浮点数组<默认情况下,code>np.zeros()
会创建一个浮点数组。同样的问题也适用于利润
将其放入代码中看起来如下所示:
从scipy.stats导入binom
将numpy作为np导入
def预期利润(n):
n=10
总数=0
X=np.arange(0,n+1)
p=np.零(n+1,dtype=float)
利润=np.零(n+1,数据类型=浮动)
对于范围(1,n+1)内的i:
p[i]=binom.pmf(X[i],n,19/20)
如果X[i]>100:
利润[i]=50*n-60*(X[i]-100)
其他:
利润[i]=50*n
总额+=利润[i]*p[i]
预期利润(10)
def expected_profit(n):
total = 0
X = np.arange(0,n+1)
p = np.arange(0,n+1)
profit = np.arange(0,n+1)
for i in list(range(1,n+1)):
print("X_i:", X[i])
p[i] = binom.pmf(X[i],n,19/20)
print(p[i])
if X[i] > 100:
profit[i] = 50*n-60*(X[i]-100)
else:
profit[i] = 50*n
total += profit[i]*p[i]
return total
expected_profit(10)
>>>0