2
0

More than 3 years have passed since last update.

pybind11 で numpy 配列データを作るメモ

Posted at

py::array_t<double> で numpy 配列データを作ることができます.

配列を作るのはドキュメントにはあまり情報がないので, ソースコード(test code)を追うことになります.

配列を作る

py::array_t<double> a;
a.resize({N, M});

基本 resize でいけます.

配列のアクセス

a[1][2] みたいにアクセスはできないです. [] は一次元配列のみ使えます.

a.data(i, j) のようにして多次元配列アクセスします

配列の値を設定する

配列データは基本 const になっているので, a.data(1, 1) = 1.0 みたいにするのはできません.

配列に値を設定する場合は

a.mutable_at(0, 2) = 1.0;

などとして mutable にして(const はずし)アクセスが必要です.

Python での書き方(e.g. slice 記法)に慣れてしまうと C++ でフレキシブルにやるのには結構制約がある感じです.

その他のアクセスの方法

pybind11入門(3) NumPy連携その1
https://qiita.com/lucidfrontier45/items/183526df954c1d6580ba

ありがとうございます.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0