code: def _polyder(p, m):
      """Differentiate polynomials represented with coefficients.
  
      p must be a 1D or 2D array.  In the 2D case, each column gives
      the coefficients of a polynomial; the first row holds the coefficients
      associated with the highest power.  m must be a nonnegative integer.
      (numpy.polyder doesn't handle the 2D case.)
      """
  
      if m == 0:
          result = p
      else:
          n = len(p)
          if n <= m:
              result = np.zeros_like(p[:1, ...])
          else:
              dp = p[:-m].copy()
              for k in range(m):
                  rng = np.arange(n - k - 1, m - k - 1, -1)
                  dp *= rng.reshape((n - m,) + (1,) * (p.ndim - 1))
              result = dp
      return result
  
file_path: catboost/contrib/python/scipy/py2/scipy/signal/_savitzky_golay.py
imports: from __future__ import division, print_function, absolute_import
  import numpy
  from scipy.linalg import lstsq
  from math import factorial
  from scipy.ndimage import convolve1d
  from ._arraytools import axis_slice
label_desc: Use image node_id 2 for calling a global function with example usage: _polyder(p, m) and returns: result