# Python for Machine Learning

A [2018 GitHub study](https://github.blog/2019-01-24-the-state-of-the-octoverse-machine-learning/) looked at contributors to repositories tagged with the “machine-learning” topic, and ranked the most common primary languages of the repositories. Python was the most common language among machine learning repositories and the second most common language on GitHub overall (2019).

![Top Machine Learning Programming Languages on GitHub (2018)](https://4117164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFCNLySTC0Jf6imOp3y%2Fuploads%2Fgit-blob-e090405f5920f16b046a447521d43b5d4c68c305%2FScreen%20Shot%202020-10-09%20at%2011.40.26%20AM.png?alt=media)

Some of the reasons for its adoption and its fast growth are:

* Accessible and has a smooth learning curve.
* Very simple to read and write.
* Efficient and reliable for many applications.
* Healthy, active, and supportive community.
* Vast ecosystem of libraries and tools.

![Top Programming Languages on GitHub (2019)](https://4117164708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFCNLySTC0Jf6imOp3y%2Fuploads%2Fgit-blob-dcee6c65bc2d80e033bf95a52dec609e542c2eaf%2FScreen%20Shot%202020-10-09%20at%2011.37.09%20AM.png?alt=media)

Python has many awesome **visualization packages** and an amazing ecosystem of useful **machine learning libraries** such as:

* [**Numpy**](https://numpy.org/)**:** Numeric Python or Numpy is a Linear Algebra Library for Python with powerful data structures for efficient computation of multi-dimensional arrays and matrices.
* [**Pandas**](https://pandas.pydata.org/)**:** It is the most popular Python library which provides highly optimized performance for data analysis.
* [**Matplotlib**](https://matplotlib.org/)**:** It is a popular python plotting library used for creating basic graphs like line charts, bar charts, histograms, and many more.
* [**Seaborn**](https://www.geeksforgeeks.org/seaborn-distribution-plots/)**:** Provides a high-level interface for creating attractive graphs.
* \*\*\*\*[**Scikit-Learn**](https://scikit-learn.org/stable/)**:** It is used for data mining, data analysis, and machine learning. Contains a wide range of machine learning algorithms like classification, regression, and clustering algorithms including support vector machines, random forests, gradient boosting, k-means.
* [Tensorflow](https://www.tensorflow.org/): It is a free and open-source software library for dataflow and differentiable programming across a range of tasks. It is a symbolic math library, and is also used for machine learning applications such as neural networks.
* [PyTorch](https://pytorch.org/): It is an open-source machine learning library based on the Torch library, used for applications such as computer vision and natural language processing, primarily developed by Facebook's AI Research lab.
