这是cpython的接口代码,我想把它转换为纯c/c++语言,但PyArray_Dim这个获取维数的方法,我在网上找不到相关c语言代码,因为请问如何获得数组维数呢?非常感谢!!
//======================================
void *
resize_array(double *py_arr, int newsize)
{
int i, ndim = PyArray_NDIM((PyArrayObject *) py_arr);
npy_intp *dims = malloc(ndim*sizeof(npy_intp));
for (i = 0; i < ndim; i++) dims[i] = PyArray_DIM((PyArrayObject *) py_arr, i);
dims[0] = newsize;
PyArray_Dims newshape;
newshape.ptr = dims;
newshape.len = ndim;
PyObject *retval;
retval = PyArray_Resize((PyArrayObject *) py_arr, &newshape, 1, NPY_CORDER);
if (!retval) return NULL;
Py_DECREF(retval);
return PyArray_DATA((PyArrayObject *) py_arr);
}
//======================================