This is a small project to demonstrate how partition small to medium sized graphs using eigenvalues of the adjecancy matrix of the graph. With a normal desktop computer, it can comfortably handle ~500k nodes and a few million connections. You can read more about graph partitioning here https://en.wikipedia.org/wiki/Graph_partition. This implementation uses Scipy sparse matrices.
There are a few examples you can check out including some data from SNAP.