import numpy as np
path = [(1, 1), (1, 2), (1, 3), (2, 3), (2, 4), (2, 5)]
path = np.array(path)
delta = np.diff(path, axis=0)
prod = delta[:-1, :] * delta[1:, ::-1]
mask = (prod[:, 0] != prod[:, 1])
smoothed = np.concatenate((path[np.newaxis, 0, :], path[1:-1, :][mask, :], path[np.newaxis, -1, :]), axis=0)
print(smoothed)
aW1wb3J0IG51bXB5IGFzIG5wCgpwYXRoID0gWygxLCAxKSwgKDEsIDIpLCAoMSwgMyksICgyLCAzKSwgKDIsIDQpLCAoMiwgNSldCnBhdGggPSBucC5hcnJheShwYXRoKQoKZGVsdGEgPSBucC5kaWZmKHBhdGgsIGF4aXM9MCkKcHJvZCA9IGRlbHRhWzotMSwgOl0gKiBkZWx0YVsxOiwgOjotMV0KCm1hc2sgPSAocHJvZFs6LCAwXSAhPSBwcm9kWzosIDFdKQoKc21vb3RoZWQgPSBucC5jb25jYXRlbmF0ZSgocGF0aFtucC5uZXdheGlzLCAwLCA6XSwgcGF0aFsxOi0xLCA6XVttYXNrLCA6XSwgcGF0aFtucC5uZXdheGlzLCAtMSwgOl0pLCBheGlzPTApCgpwcmludChzbW9vdGhlZCk=