Elixir Alternatives to Commonly Used Python Machine Learning and Data Science Libraries
The fields of machine learning and data science have been significantly shaped by Python’s extensive libraries and community support. However, Elixir, renowned for its concurrency and fault-tolerant capabilities, is making headway in this domain. This blog post is a brief comparison of Elixir libraries used for ML and data science, comparing them to their well-established Python counterparts.
| Python Library | Description | Link | Stars | LoC | Elixir Library | Link | Stars | LoC |
|---|---|---|---|---|---|---|---|---|
| NumPy | Numerical computing | NumPy | 24.1k | 1,437k | Nx | Nx | 2.6k | 21.1k |
| Pandas | Data manipulation and analysis | Pandas | 40.4k | 1,837k | Explorer | Explorer | 900 | 4.2k |
| Matplotlib | Data visualization | Matplotlib | 18.4k | 1,260k | VegaLite | VegaLite | 330 | 1.8k |
| Scikit-learn | Machine learning | Scikit-learn | 58.3k | 1,387k | Scholar | Scholar | 398 | 2.6k |
| TensorFlow | Deep learning framework | TensorFlow | 178k | 2,825k | Axon | Axon | 900 | 5.7k |
| PyTorch | Deep learning framework | PyTorch | 69.2k | 4,373k | ||||
| LightGBM | Gradient boosting framework | LightGBM | 16.4k | 345k | No Direct Equivalent | N/A | N/A | N/A |
| SciPy | Scientific computing | SciPy | 12.2k | 1,576k | No Direct Equivalent | N/A | N/A | N/A |
| Keras | High-level neural networks API | Keras | 59.4k | 262k | Axon (Partially) | Axon | 900 | 5.7k |
| NLTK | Natural language processing | NLTK | 11.4k | 295k | No Direct Equivalent | N/A | N/A | N/A |
| spaCy | Industrial-strength NLP | spaCy | 25.1k | 373k | No Direct Equivalent | N/A | N/A | N/A |
| XGBoost | Optimized distributed gradient boosting library | XGBoost | 26.1k | 624k | No Direct Equivalent | N/A | N/A | N/A |
| Jupyter | Interactive computing notebook | Jupyter | 10.1k | 406k | Livebook | Livebook | 3.3k | 37k |
| Broadway | Broadway | 1.3k | 5k |
This table provides a side-by-side comparison of Python and Elixir libraries, including their descriptions, GitHub links, star counts, and estimated lines of code (LoC).
While the smallest Python library above counts 262k Loc, the total lines of code for all reported Elixir libraries combined is 77,400 LoC. This means that in ~1 month, a developer should be able to read and hopefully understand the entirety of the Elixir code listed above, line by line.
Not bad!