Originally posted on sdtimes
As organizations wake up to the multitude of ways advanced technologies can augment their businesses, developers with relevant skills are becoming ever more valuable. Data is the key to a whole kingdom of opportunity, and when combined with AI and machine learning tools, the bounds of this kingdom are practically limitless.
Even for those without the necessary skills to code from scratch – to create algorithms, searching and sorting methods, data manipulation and preprocessing methods, to name a few – there is a thriving open-source community that allows developers access to ready-made tools that perform these tasks. And for those who do possess the technical skills to code these methods, it simply doesn’t make sense to reinvent the wheel each time.
More than a decade ago, the software development community realized that recoding popular and or useful methods over and over was not an efficient use of time and developed libraries that their peers could use to call methods that have been circulated time after time. These libraries were not developed by companies paying employees, but rather individual contributors from all over the world working on library development for the greater good of the data science and software development community.
Companies like Google and Amazon are also heavily involved in the open-source community – more than that, they were largely responsible for its inception. They were among the first firms to realize that intellectual property is far less useful today than data and collaboration and by open sourcing their tools and technologies, they enabled developers to build upon and augment them, thus kickstarting the open-source community on which many of us now rely. Thanks to this community, any firm wishing to take advantage of AI and machine learning tools can do so, so long as the right use case has been identified.
For those wishing to understand which data tools will best augment a particular workflow, here’s a list of my top eight popular Python data science libraries:
- NumPy – Allows a user to process large multidimensional arrays and matrices with hundreds of methods to perform mathematical operations over these data structures in an efficient manner. NumPy has had over 641 individual contributors with 17,911 code commits and 136 releases.
- Pandas – A library that uses a data structure called a Pandas DataFrame, similar to an Excel spreadsheet. It is built on top of NumPy and allows users to easily manipulate data, filter, group it, and combine it. Pandas has had over 1,165 contributors with 17,144 code commits, and 93 releases.
- Matplotlib – Allows developers to visualize data in diagrams, plots, and graphs. It allows for a wide variety of chart types, from scatter plots to non-cartesian coordinate graphs. There have been over 724 individual contributors and 25,747 code commits on just over 70 releases.
- Seaborn – A high-level API based on Matplotlib. It is a popular alternative for its nice color schemes and chart styles built by roughly 100 developers.
- scikit-learn – This has been the go-to library for machine learning algorithms on tasks such as classification, regression, clustering, dimensionality reduction, and anomaly detection. Over 1,000 individual contributors have made 22,743 commits on 86 releases of scikit-learn.
- TensorFlow – This is a very popular deep learning and machine learning framework started by Google Brain and taken over by the open source community. It allows developers to work with neural networks to solve a wide variety of tasks. Over 1,500 individuals have contributed more than 30,000 commits to build out TensorFlow for the open source community.
- Keras – A high-level API built on top of TensorFlow for working with neural networks in an easier manner. Almost 700 individuals have contributed over 4,500 commits to bring this library to the developer community.
- NLTK – A natural language toolkit developed by almost 250 individuals on 13,000 commits. It is a platform for the field of natural language processing where we can process and analyze textual data and build models to understand and gain predictions from this data.
The above is just a small sample of the thousands of libraries that data scientists use every day in their workflows. The individuals contributing to these libraries are constantly updating, adding, removing, and refining their work for the community and keeping the libraries up to date. This allows the community to continuously use the functions and methods, even as the data science field evolves with new technology and tools.
Without the open-source community, developers would be rewriting the same code over and over and productivity would be drastically lower, so it’s in all our interests to continue building and maintain the libraries we use and love.