如何将 2d numpy 数组传递给 C++ pybind11?
How to pass 2d numpy array to C++ pybind11?
在 C++ pybind11 包装器中:
.def("calcSomething",
[](py::array_t<double> const & arr1,
py::array_t<double> const & arr2)
{
// do calculation
}
)
在python中:
example.calcSomething(
arr1=np.full((10, 2), 20, dtype='float64'),
arr2=np.full((10, 2), 100, dtype='float64')
)
我收到了这条错误信息:
ValueError: array has incorrect number of dimensions: 2; expected 1
那么我应该如何将 2d 或 nd 数组传递给 pybind11?
在 pybind11 中 array_t
是一个 n-dimensional 数组,就像一个 numpy 数组。
所以没有维度限制。
错误消息可能来自其他地方。不是来自 pybind11.
至少您显示的代码不应导致此行为。
在 C++ pybind11 包装器中:
.def("calcSomething",
[](py::array_t<double> const & arr1,
py::array_t<double> const & arr2)
{
// do calculation
}
)
在python中:
example.calcSomething(
arr1=np.full((10, 2), 20, dtype='float64'),
arr2=np.full((10, 2), 100, dtype='float64')
)
我收到了这条错误信息:
ValueError: array has incorrect number of dimensions: 2; expected 1
那么我应该如何将 2d 或 nd 数组传递给 pybind11?
在 pybind11 中 array_t
是一个 n-dimensional 数组,就像一个 numpy 数组。
所以没有维度限制。
错误消息可能来自其他地方。不是来自 pybind11.
至少您显示的代码不应导致此行为。