in interpolation.py [0:0]
def get_interpolated_coordinates(coordinates, labels, clusters, distances,
clusters_from, clusters_to,
points_list = None,
n_points=10, n_starts=10, space='poincare'):
interpolated_coordinates = np.copy(coordinates)
interpolated_labels = np.copy(labels)
if points_list is None:
points_list = []
for i1, cl_from in enumerate(clusters_from):
for i2, cl_to in enumerate(clusters_to):
if cl_from != cl_to:
print(f"{cl_from} to {cl_to}")
for i in range(n_starts):
u, v, iu, iv = get_closest(coordinates, distances, clusters, cluster_from=cl_from, cluster_to=cl_to)
points_list.append([iu, iv])
for p_pair in points_list:
u = coordinates[p_pair[0]]
v = coordinates[p_pair[1]]
if space == 'poincare':
interpolated_coordinates = np.concatenate((interpolated_coordinates,
poincare_linspace(u, v, n_points=n_points)))
else:
interpolated_coordinates = np.concatenate((interpolated_coordinates,
intermediates(u, v, nb_points=n_points)))
interpolated_labels = np.concatenate((np.array(interpolated_labels),
np.array(['interpolation']*n_points)))
return interpolated_coordinates, interpolated_labels, points_list