title: 3D interpolation between two cloud of points
body: <p>I want to interpolate a set of temperature, defined on each node of a mesh of a CFD simulation, on a different mesh.</p>
  
  <p>Data from the original set are in csv (X1,Y1,Z1,T1) and I want to find new T2 values on a X2,Y2,Z2 mesh.</p>
  
  <p>From the many possibilities that SCIPY provide us, which is the more suitable for that application? Which are the differences between a linear and a nearest-node approach?</p>
  
  <p>Thank you for your time.</p>
  
  <h2>EDIT</h2>
  
  <p>Here is an example:</p>
  
  <pre><code>import numpy as np
  from scipy.interpolate import griddata
  from scipy.interpolate import LinearNDInterpolator
  
  data = np.array([
          [ -3.5622760653000E-02,  8.0497122655290E-02,  3.0788827491158E-01],
          [ -3.5854682326000E-02,  8.0591522802259E-02,  3.0784350432341E-01],
          [ -2.8168760240000E-02,  8.0819296043557E-02,  3.0988532075795E-01], 
          [ -2.8413346037000E-02,  8.0890746063578E-02,  3.1002054434659E-01],
          [ -2.8168663383000E-02,  8.0981744777379E-02,  3.1015319609412E-01], 
          [ -3.4150537103000E-02,  8.1385114641365E-02,  3.0865343388355E-01],
          [ -3.4461673349000E-02,  8.1537336777452E-02,  3.0858242919307E-01], 
          [ -3.4285601228000E-02,  8.1655884824782E-02,  3.0877386496235E-01],
          [ -2.1832991391000E-02,  8.0380712111108E-02,  3.0867371621337E-01], 
          [ -2.1933870390000E-02,  8.0335713699008E-02,  3.0867959866155E-01]])
  
  temp = np.array([1.4285955811000E+03,
                   1.4281038818000E+03,
                   1.4543135986000E+03,
                   1.4636379395000E+03,
                   1.4624763184000E+03,                    
                   1.3410919189000E+03,
                   1.3400545654000E+03,
                   1.3505817871000E+03,
                   1.2361110840000E+03,
                   1.2398562012000E+03])
  
  linInter= LinearNDInterpolator(data, temp)
  print (linInter(np.array([[-2.8168760240000E-02,  8.0819296043557E-02,  3.0988532075795E-01]])))
  </code></pre>
  
  <p>this code is working, but I have a dataset of 10million of points to be interpolated on a data set of the same size.</p>
  
  <p>The problem is that this operation is very slow to do for all of my points: is there a way to improve my code?</p>
  
  <p>I used LinearNDinterpolator beacuse it seems to be faster than NearestNDInterpolator (<a href="https://stackoverflow.com/questions/32853150/why-does-scipy-linear-interpolation-run-faster-than-nearest-neighbor-interpolati">LinearVSNearest</a>).</p>