Not clear how to expose existing C++ vector as numpy array
Open
Nobody has claimed this yet.
enhancement
help wanted
- Dominant language
- C++
- Stars
- 18k
- Forks
- 2.3k
- Avg merge
- 5d 17h
- Merged PRs (30d)
- 10
Description
This is a question of documentation rather than an issue. I can't find any example of the following very common scenario:
std::vector<int> some_func();
...
// We want to expose returned std::vector as a numpy array without copying
m.def("some_func", []() -> py::array {
auto data = some_func();
// What to do with data?? Map it with Eigen (then return what?), wrap somehow with py::buffer (how?)
})
I don't know the answer. It would be very nice to have this explained in docs since this scenario if rather common.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the issue's std::vector some_func example and review the existing py::array, Eigen, and py::buffer documentation or entry points. Document the supported approach for exposing the returned vector, including the ownership and lifetime constraints, and show a complete example that makes the zero-copy behavior clear.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, numpy, python
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100