Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 二维数组中的累积值_Python_Arrays - Fatal编程技术网

Python 二维数组中的累积值

Python 二维数组中的累积值,python,arrays,Python,Arrays,我已经创建了一个2d阵列(Ncreated),它显示了在特定的时间步(dt)内形成了多少颗恒星,然后我使用np来表示恒星的形成在10亿年后停止。因此,数组在时间上只上升到第4行。这就是我想要的。 但是现在,我只想累加列中的值,这样在第4行之后,每列中都应该有一个单独的常量值。这是Nsum。然而,我无法让它工作,因为我感觉到np.where正在影响值。 我将如何修改定义Nsum以创建所需的阵列? 谢谢你的帮助 M = arange(0.5,25.5,0.5) xi0 = 1 scalefactor

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

Nsum = cumsum(Ncreated, axis = 0)

考虑到您有数据,请使用带有适当axis参数的方法。非常感谢。