使用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,我編輯了問題,指定我不想複製數據。只是「揭露」它。例如,我可能想要修改數組的一個元素。 – fffred