xtensor-stack/xtensor-python

Python bindings for xtensor

解決する課題

高性能な C++ 配列操作と Python エコシステムの間のギャップを埋めるライブラリです。データをコピーすることなく C++ コード内で直接 NumPy 配列を使用できるため、Python のデータ構造との互換性を保ちながら、C++ の速度と高度な機能を活用できます。

仕組み

pybind11 ライブラリを使用して、C++ と Python 間のシームレスなバインディングを作成します。NumPy 配列をインプレースでラップする 2 つの主要な C++ コンテナ pyarray と pytensor を提供します。これらのコンテナは、ブロードキャストや遅延評価といった xtensor ライブラリの機能を NumPy データに対して直接適用します。

対象ユーザー

多次元配列や数値計算を扱うアプリケーション向けに、Python 用の高性能な C++ 拡張を記述する必要がある開発者やライブラリ作成者を対象としています。

主な特徴

  • C++ を使用した NumPy 配列のインプレース操作が可能。
  • NumPy スタイルのブロードキャストと遅延計算をサポート。
  • 動的次元用の pyarray と、コンパイル時に次元を処理して高速化する pytensor を提供。
  • C++ のスカラー関数を Python から呼び出し可能なベクトル化関数に簡単に変換できる pyvectorize ツールを同梱。
  • ヘッダーオンリーのライブラリであり、conda パッケージマネージャーを通じてシームレスに統合可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト