Find Patterns in Cluster
Based on your description I think you should have a look at a technique called 'biclustering'. 

The example on this page defines the goal of this technique as 'Finding subgroups of rows and columns which are as similar as possible to each other and as different as possible to the rest.'

Since your examples are python-based, you could check out scikit-learn's implementations of biclustering.