我已经创建了一个2d阵列(Ncreated),它显示了在特定的时间步(dt)内形成了多少颗恒星,然后我使用np来表示恒星的形成在10亿年后停止。因此,数组在时间上只上升到第4行。这就是我想要的。 但是现在,我只想累加列中的值,这样在第4行之后,每列中都应该有一个单独的常量值。这是Nsum。然而,我无法让它工作,因为我感觉到np.where正在影响值。 我将如何修改定义Nsum以创建所需的阵列? 谢谢你的帮助
M = arange(0.5,25.5,0.5)
xi0 = 1
scalefactor = 14.35
Nyear = scalefactor * xi0 * M**-2.35
N = 50
dt = np.zeros(N)
t = logspace(0, log10(tgal), N)
for i in range(1,N):
dt[i] = t[i] - t[i-1]
dt[0] = 0.1
Ncreated = np.zeros((len(t),len(M)))
Nsum = np.zeros((len(t),len(M)))
for i in range(0,len(t)):
for j in range(0,len(M)):
Ncreated[i,j] = (Nyear[j] * dt[i])
d, = np.where(t > log10(1e9))
Ncreated[d] = 0
for i in range(0,len(t)):
for j in range(0,len(M)):
Nsum[i,j] = Ncreated[i,j] - Ncreated[[i-1],[j-1]]
可以用
相关问题 更多 >
编程相关推荐