Home » Programming Languages » Python

Python vs R for Data science and Machine Learning


One question that every beginner in machine learning or data science has is the choice of programming language. Python and R are very much influencing the industry now. Though Python and R are very much in demand, in an individual€™s perspective, one language might be more convenient than the other. Here, we will discuss briefly how Python or R are better suited for the use case and the individual.

First, we will start with a little introduction to Python and R. Then we will discuss some scenarios and see which language is more suitable.

Introduction to Python

Python is a high level, general-purpose programming language. Python was first released in 1991. It is well known for its easily understandable syntax. It also makes it easy to structure the code with the help of white spaces called indentation. The simplicity of writing code results in more readable code than any other programming language.

Python is an object-oriented programming language. The essential data structures in python are list, tuple, set, dictionary. It includes prominent machine learning libraries like Numpy, Pandas, Matplotlib, Scikit-learn, Keras, PyTorch and Tensorflow.

Python is not just a programming language for machine learning or data science. It has a wide range of applications like web development, mobile application development, game development, web scraping, machine learning, data science, data visualization, artificial intelligence, and many more.

Introduction to R

R is a programming language and software environment for statistical computing and graphics. R was officially released in 1995. It provides a variety of statistical and graphical techniques such as linear and non-linear modeling, statistical tests, time series analysis, classification, clustering, etc. Some basic packages come with R installation. The rest of the packages are available through the CRAN (The Comprehensive R Archive Network) repository.

R is a functional programming language. It uses object-oriented programming to manage complexity in large problems. The essential data structures in R include vectors, matrix, array, list, data frame, factors.

The great thing about R is its ability to provide publication quality charts and graphs, including mathematical symbols.

Comparison of Python and R

Both Python and R has excellent data analysis capabilities. But in R, many of those functionalities are built-in. In Python, we use them through importing packages like €œmath€, €œrandom€, “numpy”, etc.

When it comes to file formats, both Python and R provides support for various file formats like CSV, JSON, XML, HTML, text files, etc. You can work with SQL queries in both Python and R with the help of supporting packages.

In Python, €œmatplotlib€ is the primary plotting library. €œSeaborn€ is another library which is just a wrapper over the primary library €œmatplotlib€. These features are just enough to build beautiful plots with Python. Whereas in R, there are multiple different packages available to do plotting. The same plot can be made in various ways using different plotting libraries, providing you with the freedom of choice. Both Python and R can be capable of producing beautiful plots, with R having a little edge over Python by housing lots of plotting packages.

Python provides a lot of machine learning algorithms bundled together in a package called €œscikit-learn€. R has various smaller individual libraries for each algorithm. Though this provides us with many options, it is not considered to be developer friendly when compared to Python.

Since Python is an object-oriented programming language, you can write large scale, robust code with Python than R.


We may arrive at an agreeable scenario to use Python or R as given below.

  • The presence of built-in statistical features makes R considered data analysis friendly.
  • Freedom of choosing plotting packages and the ability to produce publication quality plots makes R considered plotting friendly.
  • The ease of importing and using machine learning libraries, and the simple readable syntax makes Python considered developer friendly.
  • The ability to seamlessly integrate code with the rest of the architecture makes Python considered production ready.

Which one to choose?


If you have a statistical background, R is more appropriate to start with. Or, if you have some programming knowledge then Python will be more comfortable.

Use case:

If you are looking for statistical learning and data exploration, R will be a good match. Or, if you are looking for building large scale, production ready, machine learning applications, Python will be the best match.


Look for which language your work team prefers. So that you can work with them easily by sharing code.

Charts and graphs:

If your primary goal is to build beautiful charts, then, R can guarantee you with publication quality charts and graphics.


Python can be easily integrated with other applications in your organization.

The Hybrid Approach

If you still can’t decide between Python or R, you don’t have to worry. Agreeing on one language for all your needs is sometimes hard. You don€™t have to compromise one over the other. Therefore, you can always use a hybrid approach.

You can use R in the initial phase for data analysis and to make attractive data visualizations. Then use Python to build your model and make it production ready. Thus, getting the best of both worlds.

For similar tutorials on Machine learning / Data Science from me, please visit my Machine Learning Blog. Follow me on Twitter or LinkedIn.

Best Regards,

Brindha Sivashanmugam.