C++ Python 将数据从 vector 转换为 ndarray

3 投票
1 回答
940 浏览
提问于 2025-04-17 13:16

我正在创建一个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

这篇文章可能会对你有帮助。

撰写回答