diff --git a/src/main.cpp b/src/main.cpp
index e1208cbf3aa75dd8a410b5a7250975af4e1ce19b..de448d3bea984483518f1f2fc19ca8ea178f544e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -63,11 +63,11 @@ obiatools_zonalstats(PyObject *self, PyObject *args) {
     if (!w || w == Py_None) {
         wg = 0;
     } else {
-        PyArray_Descr* dtype;
-        int _ndims;
-        npy_intp _dims;
-        PyArrayObject* _w;
-        PyArray_GetArrayParamsFromObject(w,NULL,1,&dtype,&_ndims,&_dims,&_w,NULL);
+        PyArray_Descr* dtype = PyArray_DescrFromType(NPY_FLOAT32);
+        //int _ndims;
+        //npy_intp _dims;
+        PyArrayObject* _w = (PyArrayObject*)PyArray_FromAny(w, dtype, 1, 1, NPY_ARRAY_CARRAY, NULL);
+        //PyArray_GetArrayParamsFromObject(w,NULL,1,&dtype,&_ndims,&_dims,&_w,NULL);
         wg = (float*)PyArray_DATA(_w);
     }
 
@@ -76,11 +76,11 @@ obiatools_zonalstats(PyObject *self, PyObject *args) {
         nvg = new Data[B];
         for (k=0; k<B; k++) nvg[k] = -9999.0;
     } else {
-        PyArray_Descr* dtype;
-        int _ndims;
-        npy_intp _dims;
-        PyArrayObject* _nv;
-        PyArray_GetArrayParamsFromObject(nv,NULL,1,&dtype,&_ndims,&_dims,&_nv,NULL);
+        PyArray_Descr* dtype = PyArray_DescrFromType(NPY_FLOAT32);
+        //int _ndims;
+        //npy_intp _dims;
+        PyArrayObject* _nv = (PyArrayObject*)PyArray_FromAny(nv, dtype, 1, 1, NPY_ARRAY_CARRAY, NULL);
+        //PyArray_GetArrayParamsFromObject(nv,NULL,1,&dtype,&_ndims,&_dims,&_nv,NULL);
         nvg = (Data*)PyArray_DATA(_nv);
     }