【发布时间】:2019-01-11 16:06:13
【问题描述】:
我对以下代码有疑问。我尝试了很多网页来找到一些解决方案,但我无法做到。
问题是当我在打印 4 行后运行这个脚本时,Python 会重新启动 shell。在jupyter 中发送消息:The kernel appears to have died. It will restart automatically.
我尝试在脚本的第一个包含 (300,000) 行数据的文件中读取文件。然后在计算ODE和其他函数之后,我希望打印结果进行比较
import numpy as np
from scipy.integrate import odeint
from math import *
from scipy.integrate import quad
import math
import pandas as pd
hr, dr, cr, br = np.genfromtxt('outputs/new.txt',unpack=True)
def OD_H(od, z, c, b):
Omegai = (1-od)
div1 = np.divide(1, (1 + z), where = (1 + z)!= 0)
dMdt = -(div1) * (2 *(1-od)* (-2 + (od/(6 * c))) + 3 - 3 * b**2 * Omegai - 3 * od)
return dMdt
def ant(H0, z, od0, c, b):
z1 = 0
od = odeint(OD_H, od0, [z1, z], args=(c, b))[-1]
return od
def dec(H0, z, od0, c, b):
od = ant(H0, z, od0, c, b)
q = -1 - (-2 + od/(6 * c))
return q
for i in range(len(hr)):
for z in range (0,1):
print(dec(hr[i], z, dr[i], cr[i], br[i]),hr[i], dr[i], cr[i], br[i])
这是一个简单的代码,但我不知道最终的问题是什么。 非常感谢任何帮助。
输入文件 (new.txt) 可以是
71.076588184266 0.40147988209522 0.080396967668756 0.050302016457046
71.02284157687 0.39756707964421 0.080918035449145 0.050501956013259
71.102923163306 0.41587392748136 0.07823452108922 0.049336707395359
70.860444589498 0.46748446539443 0.072392464271658 0.046667808684486
70.181278149341 0.44888833570037 0.077917371645449 0.04777288009128
70.588452406351 0.49035265611716 0.072303154996487 0.045942096884044
70.588452406351 0.49035265611716 0.072303154996487 0.045942096884044
70.011812869146 0.44210637315163 0.07871914246357 0.048393990901086
69.807956729005 0.41349634394633 0.082020266421564 0.049900569076028
69.807956729005 0.41349634394633 0.082020266421564 0.049900569076028
69.807956729005 0.41349634394633 0.082020266421564 0.049900569076028
70.123419349447 0.43961350279409 0.07862300319627 0.048607832896286
70.361666430312 0.41397677666087 0.080502527828865 0.049745843125116
70.361666430312 0.41397677666087 0.080502527828865 0.049745843125116
70.357430153315 0.41485946940097 0.08042642593323 0.049703105696664
70.357430153315 0.41485946940097 0.08042642593323 0.049703105696664
71.551080656041 0.51047305096688 0.066682530098241 0.0446474321235
【问题讨论】:
-
用 30 行数据或其他东西创建一个不同的 new.txt 副本。如果它加载,您可以确认我的怀疑:这很可能是您没有足够的内存来保存所有数据。只是一个典型的内存问题。
-
@ParitoshSingh 是的,在添加 4 GB 额外的 ddr3 RAM 后,我尝试了一些先前的计算有这个问题,我的问题得到了解决。但现在我有 8 GB RAM。但现在让我来做你的建议。等一下……
-
@ParitoshSingh 不,文本文件又有 17 行我有同样的问题
-
您能否提供仍然允许复制问题的最小输入?
-
@ParitoshSingh 什么意思,我听不懂
标签: python shell kernel jupyter ode