https://medium.com/@ramjoshi.blogs/how-to-work-with-the-numpy-library-in-python-for-numerical-computing-and-data-manipulation-2db294e8efb0