The implementation of this Algorithm only uses Numpy and Python.
It uses a "Naive Sharding Centroid Initialization Method" to increase computational speed by initializing the centroids in a way that makes convergence quicker.
For further reading on this please refer to this link.
The implemantion of this algorithm uses Python and the K-D-Tree from sklearn.