I am presenting GAlib (Graph Analysis library) that is a collection of functions I developed over the last 10 years to perform the analysis of complex networks in my own research. GAlib works on adjacency matrices, represented as 2D numpy arrays. This choice certainly limits the size of the networks that the library can handle but it also allows to exploit the powers of numpy to manipulate arrays and boost the performance far beyond pure Python code. As a result, GAlib is simple to use and to extend; easy to read, access and modify. It has no hidden code, so you always know what every function actually does.
GAlib includes I/O and statistics tools, and a large set of functions for the analysis of graphs including clustering, distances and paths, matching index, assortativity, roles of nodes in modular networks, rih-club coefficients, K-core decomposition, etc. It also includes functions to generate random networks of different types, randomizing networks, as-well-as many examples and ready-to-use scripts useful also for complete beginners.