title: Why can I use numpy functions on Pandas DataFrames?
body: <p>I found found out accidentally that NumPy functions can be directly applied to Pandas DataFrames. For example:</p>
  
  <pre><code>np.log(my_pandas_df)
  </code></pre>
  
  <p>works. This is not something that I expected to work since NumPy knows nothing about Pandas. What is happening behind the scenes?</p>