C ++ Application(Sci)Python之间的数据交换

时间:2012-03-14 10:00:58

标签: c++ python qt scipy sparse-matrix

我正在开发用于科学目的的c ++ / Qt软件。虽然Eigen库为我提供了许多分析矩阵的操作,但是为所有可能的操作连接设计gui仍然很痛苦/困难。因此我也在运行时与Matlab交换矩阵。由于Matlab不是开源的,而且我的大学里的学生很难学习,我想用python做同样的事情,所以我可以使用例如SciPy进行分析。因此我的问题是:如何用python交换数据(例如稀疏矩阵),特别是在运行时scipy?

请注意,我可能会认为这是错误/复杂的方式,所以我对其问题的其他解决方案持开放态度。我尝试使用PythonQt最终在python中运行我的整个应用程序,但它还没有与Qt4.8一起工作,它仍然意味着要通过python使其他部分可调用很多工作。我们现在正在使用QScript,正如预期的那样,它不提供任何数据分析工具。

2 个答案:

答案 0 :(得分:0)

不是答案,而是一些比较知识渊博的地方:

1)问cython mailing list (你知道cython吗? 将正常密集的Numpy数组传递到C,并用C填充它们很容易; 你可以为你的工作预先分配一个足够大的Numpy阵列吗?)

2)scikit-learn 加载稀疏数组数据文件→scipy.sparse数组。

答案 1 :(得分:0)

Cython(它似乎是Sage的一个分支)是粘合Python和C / C ++的流行方式。凭借我有限的经验,它非常优雅和有效。

他们有一个很好的tutorial on working with Numpy arrays(这几乎可以肯定你应该如何在Python中表示数组)。当然,Numpy / Scipy提供了许多与Matlab相同的数字。