0
創建numpy的NDArray我嘗試做一個Python包裝一些C++函數和類型綁定到Python。我的問題是當我嘗試將自定義矩陣類型轉換爲numpy ndarray。最有說服力的解決方案是使用PyArray_SimpleNewFromData
。問題從PyArray_SimpleNewFromData
爲了測試它的行爲,因爲我沒做什麼,我想我試圖執行一個簡單的測試:
PyObject* ConvertToPython(...) {
uint8_t test[10] = {12, 15, 82, 254, 10, 32, 0, 8, 127, 54};
int32_t ndims = 1;
npy_intp dims[1];
dims[0] = 10;
int32_t typenum = (int32_t)NPY_UBYTE;
PyObject* python_object = PyArray_SimpleNewFromData(ndims, dims, typenum, (void*)test);
Py_XINCREF(python_object);
return python_object;
}
然後我在Python得到以下結果:
type(test) = <type 'numpy.ndarray'>
test.ndim = 1
test.dtype = uint8
test.shape = (10,)
但數組中的值是:
test.values = [ 1 0 0 0 0 0 0 0 80 8]
我想不通,我究竟做錯了什麼?我不是很有經驗做一個Python包裝,所以任何幫助都是可觀的!
是的,它運作得更好! – baptiste