PyArray_SimpleNewFromData
を使用すると、std::vector
をnumpy配列として公開するのは簡単です。私は今、逆をしようとしています:numpy配列をC++ベクタとして公開します。numpy配列をC++ベクターとして公開
C配列として公開が可能です:
// get the size
npy_intp s = PyArray_SIZE(numpy_array);
// get the pointer to the array
bool* c_array = (bool*) PyArray_GETPTR1(numpy_array, 0);
// Do something
for(unsigned int i=0; i<s; i++)
c_array[i] = ... ;
今どのようにC++ベクトルの代わりに、C言語の配列についてはどうですか?
編集:私はデータをコピーしたくありません。それ以外の場合、その答えは簡単です。
配列を初期化子として使って新しいベクトルを作成するだけでいいです... – JHBonarius
@ J.H.Bonarius、私はデータをコピーしないことを指定する質問を編集しました。それを「公開」するだけです。たとえば、配列の1つの要素を変更することができます。 – fffred