fork download
  1. import numpy as np
  2.  
  3. path = [(1, 1), (1, 2), (1, 3), (2, 3), (2, 4), (2, 5)]
  4. path = np.array(path)
  5.  
  6. delta = np.diff(path, axis=0)
  7. prod = delta[:-1, :] * delta[1:, ::-1]
  8.  
  9. mask = (prod[:, 0] != prod[:, 1])
  10.  
  11. smoothed = np.concatenate((path[np.newaxis, 0, :], path[1:-1, :][mask, :], path[np.newaxis, -1, :]), axis=0)
  12.  
  13. print(smoothed)
Success #stdin #stdout 0.08s 92224KB
stdin
Standard input is empty
stdout
[[1 1]
 [1 3]
 [2 3]
 [2 5]]