这是场景,我必须在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 ++代码并在需要时再次运行代码的东西。那么,怎么能实现呢?
答案 0 :(得分:1)
只是一个想法:
你可以在你的主python程序中运行你的程序的c ++部分吗?你可以通过查看[Calling an external command in Python中的答案来做到这一点。您可以使用适配器设计模式对c ++程序中的输出进行预处理,使其与主python程序中使用的数据结构兼容,反之亦然。