Python bindings for the xtensor C++ multi-dimensional array library.
What are xtensor
and xtensor-python
?
xtensor
is a C++ library for multi-dimensional arrays enabling numpy-style broadcasting and lazy computing.
xtensor-python
enables inplace use of numpy arrays with all the benefits fromxtensor
- C++ universal functions and broadcasting
- STL - compliant APIs.
The numpy to xtensor cheat sheet from the xtensor
documentation shows how numpy APIs translate to C++ with xtensor
.
The Python bindings for xtensor
are based on the pybind11 C++ library, which enables seemless interoperability between C++ and Python.
Instead of exposing new types to python, xtensor-python
enables the use of NumPy data structures from C++ using Python's Buffer Protocol.
In addition to the basic accessors and iterators of xtensor
containers, it also enables using numpy arrays with xtensor
's expression system.
Besides xtensor-python
provides an API to create Universal functions from simple scalar functions from your C++ code.
Finally, a cookiecutter template project is provided. It takes care of the initial work of generating a project skeleton for a C++ extension based on xtensor-python
containing a few examples, unit tests and HTML documentation. Find out more about the xtensor-python-cookiecutter.
xtensor
and xtensor-python
require a modern C++ compiler supporting C++14. The following C++ compilers are supported:
- On Windows platforms, Visual C++ 2015 Update 2, or more recent
- On Unix platforms, gcc 4.9 or a recent version of Clang
We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.
This software is licensed under the BSD-3-Clause license. See the LICENSE file for details.
.. toctree:: :caption: INSTALLATION :maxdepth: 2 installation
.. toctree:: :caption: USAGE :maxdepth: 2 basic_usage array_tensor numpy_capi examples cookiecutter
.. toctree:: :caption: API REFERENCE :maxdepth: 2 api_reference
.. toctree:: :caption: DEVELOPER ZONE dev_build_options compilers releasing