def hierarchical_ordering_indices(columns, correlation_matrix):
"""Return array with hierarchical cluster ordering of columns
Parameters
----------
columns: iterable of str
Names of columns.
correlation_matrix: np.ndarray
Matrix of correlation coefficients between columns.
Returns
-------
indices: iterable of int
Indices with order of columns
"""
if len(columns) > 2:
pairwise_dists = distance.pdist(
np.where(np.isnan(correlation_matrix), 0, correlation_matrix),
metric='euclidean')
linkage = hierarchy.linkage(pairwise_dists, method='average')
dendogram = hierarchy.dendrogram(
linkage, no_plot=True, color_threshold=-np.inf)
idx = dendogram['leaves']
else:
idx = list(range(len(columns)))
return idx
评论列表
文章目录