xtensor-stack/xtensor-python
Python bindings for xtensor
解决的问题
它弥合了高性能 C++ 数组操作与 Python 生态系统之间的鸿沟。它允许开发人员直接在 C++ 代码中使用 NumPy 数组而无需复制数据,从而在保持与 Python 数据结构兼容的同时,利用 C++ 的速度和高级特性。
工作原理
它使用 pybind11 库在 C++ 和 Python 之间创建无缝绑定。它提供了两个主要的 C++ 容器——pyarray 和 pytensor——用于原地包装 NumPy 数组。这些容器将 xtensor 库的功能(如广播和惰性求值)直接暴露给 NumPy 数据。
适用人群
该库专为需要为 Python 编写高性能 C++ 扩展的开发人员和库作者设计,特别适用于涉及多维数组和数值计算的应用程序。
主要亮点
- 支持使用 C++ 对 NumPy 数组进行原地操作。
- 支持 NumPy 风格的广播和惰性计算。
- 提供用于动态维度的
pyarray和用于更快编译时维度处理的pytensor。 - 包含
pyvectorize工具,可轻松将 C++ 标量函数转换为可从 Python 调用的向量化函数。 - 仅包含头文件的库,可通过
conda包管理器无缝集成。
相关
- 项目
- 项目
- 项目
- 项目