When the first scientific libraries were written for python, most alternatives didn't even consider being readable, or convenient. The choice was more like C/Cpp/Fortran vs Python.
And then Python went into a self-reinforcing loop, with scientific community coming up with more and more ways to improve Python support for the kind of interactive work that was required for data analysis. Think ipython -> jupyter -> jupyter forks and other python-centric notebook systems.
So when data analysis evolved into data science and machine learning, gpu-first library vendors already faced a crowd of people knowing python.
It is crazy how right now one can utilize 100s of gpus through these bits of dirty python wrapped in json.
And then Python went into a self-reinforcing loop, with scientific community coming up with more and more ways to improve Python support for the kind of interactive work that was required for data analysis. Think ipython -> jupyter -> jupyter forks and other python-centric notebook systems.
So when data analysis evolved into data science and machine learning, gpu-first library vendors already faced a crowd of people knowing python.
It is crazy how right now one can utilize 100s of gpus through these bits of dirty python wrapped in json.