diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp
index e7becd589d6a99ea289e25783e1a04b7072b3644..23f586b32b85e70ba53920e537379913cdd20231 100644
--- a/include/eigenpy/details.hpp
+++ b/include/eigenpy/details.hpp
@@ -10,7 +10,6 @@
 #include "eigenpy/fwd.hpp"
 
 #include <patchlevel.h> // For PY_MAJOR_VERSION
-#include <numpy/arrayobject.h>
 #include <iostream>
 
 #include "eigenpy/eigenpy.hpp"
@@ -543,8 +542,6 @@ namespace eigenpy
     }
   };
   
-#define numpy_import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); } }
-  
   template<typename MatType,typename EigenEquivalentType>
   void enableEigenPySpecific()
   {
@@ -581,7 +578,7 @@ namespace eigenpy
   template<typename MatType>
   void enableEigenPySpecific()
   {
-    numpy_import_array();
+    loadNumpyArray();
     if(check_registration<MatType>()) return;
     
     bp::to_python_converter<MatType,EigenToPy<MatType> >();
diff --git a/include/eigenpy/eigenpy.hpp b/include/eigenpy/eigenpy.hpp
index 0c5cc8f0cff0323ac67bedec90b7701a3abe1c96..0b23d1c7c169a2973dc20a3d6ab113297a20b965 100644
--- a/include/eigenpy/eigenpy.hpp
+++ b/include/eigenpy/eigenpy.hpp
@@ -26,6 +26,10 @@
 
 namespace eigenpy
 {
+
+  /* Load numpy through Python */
+  void loadNumpyArray();
+
   /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instance. */
   void EIGENPY_EXPORT enableEigenPy();
 
diff --git a/src/eigenpy.cpp b/src/eigenpy.cpp
index 9d7490e3875d0acc464f7a8477babeea575575e2..657e969c69af587269a3d3318c1df7caa948737c 100644
--- a/src/eigenpy.cpp
+++ b/src/eigenpy.cpp
@@ -5,9 +5,24 @@
 
 #include "eigenpy/eigenpy.hpp"
 
+#include <numpy/arrayobject.h>
+
 namespace eigenpy
 {
 
+  void loadNumpyArray()
+  {
+    static bool loaded = false;
+    if(loaded) return;
+    
+    if(_import_array() < 0)
+    {
+      PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import");
+    }
+    else
+      loaded = true;
+  }
+
   /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instances. */
   void enableEigenPy()
   {