title: Round in numpy to Nearest Step
body: <p>I would like to know how I can round a number in numpy to an upper or lower threshold which is function of predefined step size. Hopefully stated in a clearer way, if I have  the number 123 and a step size equal to 50, I need to round 123 to the closest of either 150 or 100, in this case 100. I came out with function below which does the work but I wonder if there is a better, more succint, way to do this.</p>
  
  <p>Thanks in advance,</p>
  
  <p>Paolo</p>
  
  <pre><code>def getRoundedThresholdv1(a, MinClip):
      import numpy as np
      import math
      digits = int(math.log10(MinClip))+1
      b = np.round(a, -digits)
      if b &gt; a:  # rounded-up
          c = b - MinClip
          UpLow = np.array((b,c))
      else:  # rounded-down
          c = b + MinClip
          UpLow = np.array((c,b))
      AbsDelta = np.abs(a - UpLow)
      return UpLow[AbsDelta.argmin()]
  
  
  
  
  getRoundedThresholdv1(143, 50)
  </code></pre>