def path_nd(*args):
    coords = np.stack(np.meshgrid(*args), axis=-1)
N = len(args)
axes = np.arange(N)
for i in range(N - 1):
    rolled_axes = tuple(np.roll(axes, -i)) + (N,)
rolled_view = np.transpose(coords, rolled_axes)
rolled_view[1::2, :] = rolled_view[1::2, ::-1]
return coords.reshape(-1, N)
Как преобразовать массивы координат x, y, z в 3D-путь в numpy