【发布时间】:2014-04-19 12:47:27
【问题描述】:
这是场景,我必须运行超过 10000 个数据点的聚类算法。我已经预先计算了数据点之间的距离并将它们存储在一个文件中。由于 Python 在 I/O 密集型任务中速度较慢,因此我正在用 C++ 编写此聚类算法。主要问题是聚类算法将运行多次,我必须在 python 代码和 C++ 代码之间切换。像这样的
Read Distances from text_file (C++)
Run Clustering Algorithm (C++)
Use the result of this algorithm in main python code
Run clustering algorithm again (C++)
现在我不想一遍又一遍地读取距离文件,因为它已经花费了大约 17 秒,并且该文件有超过 5 亿个条目。比如暂停执行 C++ 代码并在需要时再次运行代码。那么,这是如何实现的呢??
【问题讨论】:
-
boost::python、cython,或者简单地将代码包装在 C 中并使用 ctypes 调用