If you want to play around with SuiteSparse:GraphBLAS using Python, try python-graphblas (<a href="https://python-graphblas.readthedocs.io/" rel="nofollow">https://python-graphblas.readthedocs.io/</a>). And this is a shameless plug. I'm one of the authors of the Python wrapper.
Another shameless plug, if you'd like to play around with SuiteSparse GraphBLAS using Rust, then you could try <a href="https://crates.io/crates/graphblas_sparse_linear_algebra" rel="nofollow">https://crates.io/crates/graphblas_sparse_linear_algebra</a>
To learn the latest about GraphBLAS, join the <i>free online</i> GraphBLAS session at HPEC next Tuesday:<p><a href="https://graphblas.org/hpec_bof.html" rel="nofollow">https://graphblas.org/hpec_bof.html</a>
<a href="https://ieee-hpec.org/" rel="nofollow">https://ieee-hpec.org/</a><p>Also, these are probably better intro pages to GraphBLAS:<p><a href="https://graphblas.org/" rel="nofollow">https://graphblas.org/</a>
<a href="https://graphblas.org/GraphBLAS-Pointers/" rel="nofollow">https://graphblas.org/GraphBLAS-Pointers/</a>
GraphBLAS is underrated and underused IMHO. If you use e.g. scipy.sparse, NetworkX, or similar, you should check out GraphBLAS. It is really fast even compared to scipy.sparse, and more capable in many ways.<p>They've actually started implementing the NetworkX API<p><a href="https://github.com/python-graphblas/graphblas-algorithms" rel="nofollow">https://github.com/python-graphblas/graphblas-algorithms</a><p>with python-graphblas<p><a href="https://github.com/python-graphblas/python-graphblas" rel="nofollow">https://github.com/python-graphblas/python-graphblas</a>
> <i>When applied to sparse adjacency matrices, these algebraic operations are equivalent to computations on graphs</i><p>Sparse matrix:
<a href="https://en.wikipedia.org/wiki/Sparse_matrix" rel="nofollow">https://en.wikipedia.org/wiki/Sparse_matrix</a> :<p>> <i>The concept of sparsity is useful in combinatorics and application areas such as</i> network theory <i>and numerical analysis, which typically have a low density of significant data or connections. Large sparse matrices often appear in scientific or engineering applications when solving partial differential equations.</i><p>CuGraph has a NetworkX-like API, though only so many of the networkx algorithms are yet reimplemented with some possible CUDA-optimizations.<p>From <a href="https://github.com/rapidsai/cugraph" rel="nofollow">https://github.com/rapidsai/cugraph</a> :<p>> <i>cuGraph operates, at the Python layer, on GPU DataFrames, thereby allowing for seamless passing of data between ETL tasks in cuDF and machine learning tasks in cuML. Data scientists familiar with Python will quickly pick up how cuGraph integrates with the Pandas-like API of cuDF. Likewise, users familiar with NetworkX will quickly recognize the NetworkX-like API provided in cuGraph, with the goal to allow existing code to be ported with minimal effort into RAPIDS.</i><p>> <i>While the high-level cugraph python API provides an easy-to-use and familiar interface for data scientists that's consistent with other RAPIDS libraries in their workflow, some use cases require access to lower-level graph theory concepts. For these users, we provide an additional Python API called pylibcugraph, intended for applications that require a tighter integration with cuGraph at the Python layer with fewer dependencies. Users familiar with C/C++/CUDA and graph structures can access libcugraph and libcugraph_c for low level integration outside of python.</i><p>/? sparse
<a href="https://github.com/rapidsai/cugraph/search?q=sparse" rel="nofollow">https://github.com/rapidsai/cugraph/search?q=sparse</a><p>Pandas and scipy and IIRC NumPy have sparse methods; sparse.SparseArray, .sparse.; <a href="https://pandas.pydata.org/docs/user_guide/sparse.html#sparsearray" rel="nofollow">https://pandas.pydata.org/docs/user_guide/sparse.html#sparse...</a><p>From <a href="https://pandas.pydata.org/docs/user_guide/sparse.html#interaction-with-scipy-sparse" rel="nofollow">https://pandas.pydata.org/docs/user_guide/sparse.html#intera...</a> :<p>> <i>Series.sparse.to_coo() is implemented for transforming a Series with sparse values indexed by a MultiIndex to a scipy.sparse.coo_matrix.</i><p>NetworkX graph algorithms reference docs
<a href="https://networkx.org/documentation/stable/reference/algorithms/index.html" rel="nofollow">https://networkx.org/documentation/stable/reference/algorith...</a><p>NetworkX Compatibility > Differences in Algorithms
<a href="https://docs.rapids.ai/api/cugraph/stable/basics/nx_transition.html#differences-in-algorithms" rel="nofollow">https://docs.rapids.ai/api/cugraph/stable/basics/nx_transiti...</a><p>List of algorithms >
Combinatorial algorithms > Graph algorithms:
<a href="https://en.wikipedia.org/wiki/List_of_algorithms#Graph_algorithms" rel="nofollow">https://en.wikipedia.org/wiki/List_of_algorithms#Graph_algor...</a>