Estoy buscando una forma de realizar agrupamientos por separado en filas de matriz y en sus columnas, reordenar los datos en la matriz para reflejar el agrupamiento y ponerlo todo junto . El problema del agrupamiento se puede resolver fácilmente, así como la creación del dendograma (por ejemplo, en this blog o en "Programming collective intelligence"). Sin embargo, cómo reordenar los datos sigue sin estar claro para mí.Reordenar elementos de la matriz para reflejar el clúster de columnas y filas en python ingenuo
Finalmente, estoy buscando una forma de crear gráficos similares a los que se muestran a continuación utilizando Python ingenuo (con cualquier biblioteca "estándar" como numpy, matplotlib, etc., pero sin using R u otras herramientas externas).
dendogram http://www2.warwick.ac.uk/fac/sci/moac/currentstudents/peter_cock/r/heatmap/no_scaling.png
Aclaraciones
me preguntaron qué quería decir con reordenamiento. Cuando agrupa los datos en una matriz primero por filas de matriz, luego por sus columnas, cada celda matriz puede identificarse por la posición en los dos dendrogramas. Si reordena las filas y las columnas de la matriz original de modo que los elementos que se cierran entre sí en los dendrogramas se acerquen uno al otro en la matriz y generen un mapa de calor, la agrupación de los datos puede ser evidente para el espectador. (como en la figura anterior)
¿Qué quiere decir reordenando? Intercambiando n filas/columnas vecinas con otra n? –
Desea usar numpy/scipy cuando se trata de matrices con seguridad. Matplotlib también imita a Matlab. Aquí hay un trato: si puedes hacer esto en Matlab, también puedes hacerlo en scipy (diferencia de sintaxis trivial, si la hay). –
Ooh, +1 para la bonita foto ;-) –