title: Get Row and Column Names (argmax) for max entry in pandas dataframe
body: <p>df.idxmax() returns max along an axis (row or columns), but I want arg_max(df) over the full dataframe, which returns a tuple (row,column).</p>
  
  <p>The use case I have in mind is feature selection, wherein I have a correlation matrix and want to "recursively" remove features with highest correlation. I preprocess the correlation matrix to consider its absolute values and set the diagonal elements to -1. Then I propose to use rec_drop, which recursively drops one amongst the feature-pair that has the highest correlation (subject to a cutoff: max_allowed_correlation), and returns the final list of features. E.g.: </p>
  
  <pre><code>S = S.abs()
  np.fill_diagonal(S.values,-1) # so that max can't be on the diagonal now
  S = rec_drop(S,max_allowed_correlation=0.95)
  
  def rec_drop(S, max_allowed_correlation=0.99):
      max_corr = S.max().max()
      if max_corr&lt;max_allowed_correlation: # base case for recursion
           return S.columns.tolist() 
      row,col = arg_max(S)  # row and col are distinct features - max can't be on the diagonal
      S = S.drop(row).drop(row,axis=1) # removing one of the features from S
      return rec_drop(S, max_allowed_correlation)
  </code></pre>