https://medium.com/@mayurkoshti12/comparing-native-python-and-numpy-ufuncs-in-real-world-tasks-47e7cbdb1939