Very simple and easy to use vectorized KMeans clustering algorithm from scratch in Python. Now supports more than 2 dimensions!
kmeans = KMeans(n_clusters=4, data=x)
kmeans.fit(epochs=100, steps=0.1)
pred = kmeans.predict([-2, 3])
print(kmeans.colors[pred])