How to deal with TypeError: ufunc 'isnan' not supported for the input types
There may be column of type object in your dataFrame. Remove it or convert it into float,int etc. if possible

From Documentation of Seaborn: 

data : rectangular dataset

2D dataset that can be coerced into an ndarray. If a Pandas DataFrame is provided, the index/column information will be used to label the columns and rows.

so you can try

sns.heatmap(features.drop(['columnName01_OfTypeObject','columnName02_OfTypeObject'],axis=1), annot=True, annot_kws={"size": 7})


This will drop your columns temporarily.