二维数组中的累积值

2024-04-20 05:24:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个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]]

Tags: inforlennp时间dtzerosrange