【发布时间】:2019-05-12 22:12:08
【问题描述】:
我有一个 C++ 函数,它接收 std::vector<std::vector<double> > X 并对 X 执行一些操作并输出 std::vector<std::vector<double> > X_mod。
我希望能够快速创建一个接口,以便我可以将 Python numpy 数组传递给这个 C++ 函数,然后让 C++ 函数将 X_mod 返回到 Python。
我已经简要了解了 Boost,对于这个简单的目的来说它似乎太复杂了?
关于如何为此编写快速界面的任何其他建议?
【问题讨论】:
-
我自己还没用过,不过用CFFI我觉得应该挺简单的。有关 numpy 数组的详细信息,请参阅 this answer。
-
谢谢。我会检查一下。但我想我实际上会使用 Boost。问题是我真的找不到很好的教程,而且我没有包装经验。
-
试试 pybind11,link
-
你也有数据类型问题。 numpy 数组与
std::vector<std::vector<double>>完全不同,因此您必须复制所有数据。我会使用具有buffer protocol 支持和支持stl container 的pybind11
标签: python c++ interface wrapper