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 包管理器无缝集成。

相关

  • 项目
  • 项目
  • 项目
  • 项目