У меня есть следующий код, который преобразует std :: vector в boost ndarray:
np::ndarray _vector_to_numpy_impl(const std::vector<int>& vec)
{
auto size = vec.size();
auto data = new int[size];
std::memcpy(data, vec.data(), sizeof(int) * size);
p::tuple shape = p::make_tuple(size);
p::tuple stride = p::make_tuple(sizeof(int));
np::dtype type = np::dtype::get_builtin<int>();
p::object own;
return np::from_data(data, type, shape, stride, own);
}
Но я не уверен, что после передачи этого ndarray в python он будет свободно освобождать выделенную память, когда объект выходит из области видимости. В документации буста об этом не ясно.