我有一个2项元组的列表,我想将它们转换为2个列表,其中第一个包含每个元组中的第一个项目,第二个列表包含第二个项目.
例如:
original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# and I want to become...
result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
是否有内置函数可以做到这一点?
如何在值矩阵之上绘制树形图,在Python中适当地重新排序以反映聚类?一个例子如下图:
https://publishing-cdn.elifesciences.org/07103/elife-07103-fig6-figsupp1-v2.jpg
我使用scipy.cluster.dendrogram来制作树形图并对数据矩阵执行层次聚类.然后,我如何将数据绘制为矩阵,其中行已重新排序以反映在特定阈值处切割树状图所引起的聚类,并将树状图绘制在矩阵旁边?我知道如何在scipy中绘制树形图,而不是如何在其旁边的右侧比例尺绘制数据的强度矩阵.
任何有关这方面的帮助将不胜感激.
使用这里发布的代码,我创建了一个很好的层次聚类:

让我们说左边的树状图是通过做类似的东西来创建的
Y = sch.linkage(D, method='average') # D is a distance matrix
cutoff = 0.5*max(Y[:,2])
Z = sch.dendrogram(Y, orientation='right', color_threshold=cutoff)
Run Code Online (Sandbox Code Playgroud)
现在我如何获得每个彩色簇的成员的索引? 要简化这种情况,请忽略顶部的聚类,并仅关注矩阵左侧的树形图.
该信息应存储在树形图Z存储变量中.有一个函数应该做我想要的事情fcluster(参见这里的文档).但是,我无法看到我在fcluster中的位置与cutoff我在树形图的创建中指定的相同.看来,在该阈值可变fcluster,t必须在不同的晦涩测量(而言inconsistent,distance,maxclust,monocrit).有任何想法吗?
python cluster-analysis hierarchical-clustering hierarchical scipy