scipyで書いたプログラムでも一部が遅くてそこをC++で実装したいというシナリオはよくある. それには色々な手段があるというのは以前の日記でも紹介した通り. 今回はBoost.Pythonでscipy/numpyのarray(ndarray)を取り扱う方法を説明する. 基本的な使い方はboost-python ではじめる大規模機械学習とかBoost.Python の機能をざっと紹介してみるも参考になる. 簡単な使い方 さて本題へ. boost.Pythonにおいてnumpy.ndarrayに対応するクラスは, boost::python::numericである. これは Boost.Python には、Python と C++ の型の相互変換を行うためのコンバータという機構が備わっており、すべての値の受け渡しにはこのコンバータが介在している。 とあるように, numpy.ndarray