我正在解决一组耦合 ODE 并面临两个问题:速度和内存存储。因此,我cython_gsl
用来创建一个解决我的 ODE 的模块。到目前为止,我只是将数据写入.txt
文件,但我认为使用PyTables
.
因此,我在我的.pyx
文件中定义了类似
from cython_gsl cimport *
from tables import *
def main (parameters for run ):
class vector(IsDescription):
name= StringCol(16) # 16-character String
i = Int32Col() # 32-bit integer
j = Int32Col() # 32-bit integer
k = Int32Col() # 32-bit integer
h5file = tables.openFile("tutorial1.h5", mode = "r", title = "Test file")
group = h5file.createGroup("/", 'spin_vectors',"Spin vectors of the crust and core")
table = h5file.createTable(group, 'shellvector', vector, " ")
... Setup the ODEs ...
while (t < t1):
status = gsl_odeiv_evolve_apply (e, c, s, &sys, &t, t1, &h, y)
if (status != GSL_SUCCESS):
break
#write_file.write("%.16e %.16e %.16e %.16e %.16e %.16e %.16e\n" %(t, y[0], y[1],y[2],y[3], y[4],y[5]) )
shell_table.row['i']=y[0]
shell_table.row['j']=y[1]
shell_table.row['k']=y[2]
shell_table.row.append()
shell_table.flush()
setup.py
然后我使用一个输出(成功)文件的文件来编译它.so
。不幸的是,在将它导入 Ipython 时,我得到了错误
NameError: Int32
我相信这是 PyTables 的事情。所以它似乎没有正确导入?虽然我认为这是一个很好的方法,如果有人对如何处理来自 python/cython 的数据有更好的建议,我会很高兴听到......谷歌几乎什么都没有!