2016-11-08 49 views
0

嗨那里试图只获得像1/225或35/75简单分数值,但它不断返回零?任何帮助,将不胜感激!如何停止在Python中返回零?

mymatrix=[[0,1,1],[1,0,1],[1,1,0]] 
uu=len(mymatrix) 
initials_ss=[[150],[300],[100]] #Your initial population size suceptibles 
initials_zz=[[5],[15],[555]] #Your initial population size zombies 
initials_rr=[[0],[0],[0]] #Your initial population size removed 
s_n=np.matrix(initials_ss) #Initial value suceptibles vector 
z_n=np.matrix(initials_zz) #Initial value zombie vector 
r_n=np.matrix(initials_rr) #Initial value removed vector 

z_nn=np.array(initials_zz) 
ss=np.sum(s_n,axis=0) 
zz=np.sum(z_n,axis=0) 
rr=np.sum(r_n,axis=0) 

N=ss+zz+rr 
NN=1/N[0] 
tt=np.zeros((uu,uu),int) 
np.fill_diagonal(tt,NN) 
print(tt) 
print(NN) 
u=np.diag(z_n[:,0]) 
t=NN*(u*s_n) 
print(t) 

所以当你试图找到NN你在对角线上的填补零的矩阵,但它应该有分数的值是多少?

+2

你可以发布你的代码,所以我们可以看到你是如何试图实现它? –

回答

-1

使用类型铸造。和python一样,你必须明确地键入cast。 以下将做你的工作。

In [92]: float(1)/float(225) 
Out[92]: 0.0044444444444444444 

In [95]: float(1)/225 
Out[95]: 0.0044444444444444444 

In [96]: 1/float(225) 
Out[96]: 0.0044444444444444444 
+1

铸造分子或分母就足够了。 –

+2

避免回答明显重复的答案更丰富,更详细。 –