Open JohanMabille opened 6 years ago
Are there any examples of doing this anywhere I could take a look at?
You can find an example here. The idea is to put the code in dedicated headers and cpp files that can be compiled in C++ mode only, and to expose them to the python in a single cpp module file.
I am a new xtensor-python user and I found the above example code is nice. However, most of them are related to pyvectorize
.
It would be nice if more use cases could be included. For example, I want to modify an numpy.array
in-place and I have the following piece of code:
template<typename T>
inline void movingAverage(xt::pyarray<T>& ma, const xt::pyarray<T>& data, size_t count) {
ma = ma + (data - ma) / T(count);
}
However, on the Python side, I cannot see the change. If I change xt::pyarray to xt::xarray and run the function only in C++, it works. Could you please let me know how to make the Python binding work? Thank you!
However, on the Python side, I cannot see the change
This appears to be a legitimate bug. Will be getting back to you shortly with a fix.
I have the same problem. Have we solved this question? How to change pyarray from numpy, then see the changes in python
This section should describe the best practices when functions need to be exposed to both C++ (operating on
xtensor / xarray
) and Python (operating onpytensor / pyarray
)