C++ Python 将数据从 vector 转换为 ndarray
我正在创建一个C++项目,里面包含了一些Python的内容。我使用了boost::python
,但现在遇到了一些困难。我有一些数据存储在std::vector
里,这些数据需要发送到Python去做一些计算。我用的Python NumPy函数需要数据是ndarray
格式,所以我需要找到一种方法来转换它。因为我还想在C++中对结果做更多的处理,所以我希望能把结果从ndarray
再转换回std::vector
。
那么,如何把std::vector
转换成ndarray
,又如何把ndarray
转换回std::vector
呢?有没有人能提供一些示例代码?我知道有一个库叫boost.numpy
,但我尝试构建这个库时遇到了问题,不知道有没有其他的方法。
我能不能用boost::python::numeric
来完成这个任务?有没有人能提供示例代码?
有没有可能在不复制数据的情况下完成这个转换?
1 个回答
1
也许你想使用 C Numpy API。
你可以看看 C/C++ 中的 PyArray_SimpleNewFromData
,这个函数可以帮助你在 C++ 代码里创建一个全新的 ndarray。
这篇文章可能会对你有帮助。