How to analyze correlation on high dimensional data? I have a dataset with over 100 features from where I want to know if there is a high correlation between some of those. 
I'm doing:
corr = features_final.corr()

What returns me a 100*100 matrix which is hard to analyze manually or in a plot. Which are the methods to handle such a cases?  
 A: Principal Component Analysis is a good start. It can tell you how much "redundancies" are in the data set. We have some very good discussions here.
Making sense of principal component analysis, eigenvectors & eigenvalues
On the other hand, visualizing a $100 \times 100$ matrix as an image is not too bad. Here is an example of using corrplot. 
Note that corrplot also supports clustering on "features" and put them in order. An example looks like this (source: http://rpubs.com/melike/corrplot)

A: Principal Component Analysis can be a good start. But if you want to analyze the correlation on high dimensional data using heatmap, then you can divide the correlation matrix into multiple views and analyze them separately.
For eg. Here we are dividing it into 4 views.
n = features_final.shape[1]
corr = features_final.corr()

# top left view of the heatmap
sns.heatmap(corr.iloc[:n//2, :n//2])

# top right view of the heatmap
sns.heatmap(corr.iloc[:n//2, n//2:n])

# bottom left view of the heatmap
sns.heatmap(corr.iloc[n//2:n, :n//2])

#bottom right view of the heatmap
sns.heatmap(corr.iloc[n//2:n, n//2:n])

Based on the total number of features, you can decide on how many features you want to represent per view.
[Note]: Using loop and subplots, we can easily automate the creation of a heatmap for each view.
