用Python脚本输出C++程序输出

2024-10-01 13:38:26 发布

您现在位置:Python中文网/ 问答频道 /正文

<>我有一个C++程序,它使用一些非常具体的方法来计算数据集(30000个元素)的成对距离。输出文件为20 GB,如下所示:

point1, point2, distancex
pointi, pointj, distancexx
.....

然后我将文件输入到Python并使用Python(NumPy)进行集群。使用Python读取输出文件需要花费很多时间。有没有办法将C++程序直接与我的Python代码连接,以节省中间文件上I/O的时间?也许用的是酒?在


Tags: 文件数据方法程序numpy元素距离时间
1条回答
网友
1楼 · 发布于 2024-10-01 13:38:26

我想你一直在保存ascii码。您可以修改C++代码来编写二进制文件,并用numpy.fromfile读取它。在

< >对于更直接的连接,你可以使用SWIG将C++代码打包为库(删除主程序)并从Python中驱动它。这允许您共享C++和Python之间的数组内存。在

在Python端,可以将C++中的Python的buffer protocolnumpy.frombuffer一起使用。或者可以使用^ {A4}直接在C++中对NUMPY数组进行工作。这是一个使用第二种方法的小的swig example project。(免责声明:我写的。)

相关问题 更多 >