【发布时间】:2020-09-07 06:04:58
【问题描述】:
我对 C++ 还很陌生,并且在 pybind 上苦苦挣扎。我根本不知道如何说服 pybind 将 2D 矢量从 C++ 转换为 python 可读格式。
这就是我想到的代码:
py::array_t<float> to_matrix(std::vector<std::vector<float>> &vals)
{
int N = vals.size();
int M = 6;
py::array_t<float>({N, M}) arr;
for (int i = 0; (i < N); i++)
{
for (int j = 0; (j < M); j++)
{
arr[i][j] = vals[i][j];
};
};
return arr;
};
C++ 的输入是一个包含 N 行 6 列的向量,只是一个很长的数据点列表。理想情况下,我希望将输出作为 numpy 数组,但任何 python 数据结构都可以(例如,列表列表)。
文档使它听起来很简单,但我无法弄清楚。我做错了什么?
提前感谢您的帮助。
【问题讨论】:
标签: python c++ arrays numpy pybind11