Well, I use both, and I can do everything in Python that I can do in R. However here are some things which will give you a flavour of R&#x27;s more consistent, data-first nature:<p><pre><code>  &gt; rollapply(some1000x10matrix, 200, function(x) eigen(cov(x))$values[1], by.column = FALSE) # get the first eigenvalue rolling 200x10 window. 
  &gt;&gt;&gt; # impossible in Python unless using ultra-complex Numpy stride tricks.

  &gt; dim(someMatrix)
  &gt;&gt;&gt; someMatrix.shape
  &gt; head(someMatrix)
  &gt;&gt;&gt; someMatrix.head() # notice consistent function application in R, whereas in Python, mixed attribute &#x2F; function? So we&#x27;re on OO land and I must know if it&#x27;s an attribute or a function.... 
  
  &gt; rollapply(some1000x2matrix, 200, function(x) {linmod &lt;- lm(x[, 1] ~ x[, 2]); last(linmod$residuals) &#x2F; sd(linmod$residuals)}, by.column = FALSE) # get the z score in one multi-step function. 
  &gt;&gt;&gt; Impossible in python without For loop as lambdas cannot be multi-statement. 

  &gt; native indexing using [] brackets by index number, or index value, or boolean. All vectors.
  &gt;&gt;&gt; pandas loc&#x2F;iloc&#x2F;ix mess.

  &gt; ordered lists (python dict) by default, so boolean or index subsection easy even when data is hierarchical, not tabular
  &gt;&gt;&gt; easy bugs due to unordered nature of dicts; must import some different module and then still can&#x27;t vector index it. 
</code></pre>
It&#x27;s all summed up by this:<p><pre><code>  &gt; c(1, 2, 3) * 3
  [1] 3 6 9

  &gt;&gt;&gt; [1, 2, 3] * 3
  [1, 2, 3, 1, 2, 3, 1, 2, 3] # wrong! Need rescuing by Numpy!


</code></pre>
And then there&#x27;s CRAN. Just last night someone told me about &quot;nowcasting&quot; which uses &quot;MIDAS regression&quot;. A relatively new technique. Google it for R (full package available), Google it for Python (Matlab comes up ;-).<p>And I&#x27;m not even going to start on graphics. Seaborn and bokeh are valiant efforts, but they&#x27;re still 80% of what ggplot and base graphics can do, especially, at the multidimensional scale. That last 20% is often all the difference between meh and wow. That said, I do appreciate Matplotlib&#x27;s autos rescaling of axes when adding data. Python charts aren&#x27;t as pretty nor capable of complexity (for similar effort), but they&#x27;re arguably more dynamic.<p>Now don&#x27;t get me wrong. The converse list for Python would be much longer, because it&#x27;s more general purpose, and it kills R outside of data science. I wrote 10k loc in R for a semi-production and it was horrible because it does not have the CS tools for managing code complexity, and it really is slow at certain things. R is more focused on iterative, exploratory data science, where it excels.