{"id":13679929,"url":"https://github.com/epfl-lts2/pygsp","last_synced_at":"2025-05-14T13:08:35.164Z","repository":{"id":13583904,"uuid":"16276560","full_name":"epfl-lts2/pygsp","owner":"epfl-lts2","description":"Graph Signal Processing in Python","archived":false,"fork":false,"pushed_at":"2025-02-12T17:06:42.000Z","size":4495,"stargazers_count":504,"open_issues_count":31,"forks_count":95,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-04-19T09:24:15.861Z","etag":null,"topics":["graph-representation","graph-signal-processing","graphs","signal-processing"],"latest_commit_sha":null,"homepage":"https://pygsp.rtfd.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epfl-lts2.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-01-27T11:00:16.000Z","updated_at":"2025-04-11T08:29:39.000Z","dependencies_parsed_at":"2025-03-21T19:39:10.963Z","dependency_job_id":"97149e3a-6cfb-4a11-90c6-3b6e8ef0d452","html_url":"https://github.com/epfl-lts2/pygsp","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-lts2%2Fpygsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-lts2%2Fpygsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-lts2%2Fpygsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epfl-lts2%2Fpygsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epfl-lts2","download_url":"https://codeload.github.com/epfl-lts2/pygsp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253856570,"owners_count":21974573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph-representation","graph-signal-processing","graphs","signal-processing"],"created_at":"2024-08-02T13:01:11.119Z","updated_at":"2025-05-14T13:08:29.629Z","avatar_url":"https://github.com/epfl-lts2.png","language":"Python","funding_links":[],"categories":["Toolkits","Python"],"sub_categories":["non-GNN-involved"],"readme":"========================================\nPyGSP: Graph Signal Processing in Python\n========================================\n\nThe PyGSP is a Python package to ease\n`Signal Processing on Graphs \u003chttps://arxiv.org/abs/1211.0053\u003e`_.\nThe documentation is available on\n`Read the Docs \u003chttps://pygsp.readthedocs.io\u003e`_\nand development takes place on\n`GitHub \u003chttps://github.com/epfl-lts2/pygsp\u003e`_.\nA (mostly unmaintained) `Matlab version \u003chttps://epfl-lts2.github.io/gspbox-html\u003e`_ exists.\n\n+-----------------------------------+\n| |doc|  |pypi|  |conda|  |binder|  |\n+-----------------------------------+\n| |zenodo|  |license|  |pyversions| |\n+-----------------------------------+\n| |travis|  |coveralls|  |github|   |\n+-----------------------------------+\n\n.. |doc| image:: https://readthedocs.org/projects/pygsp/badge/?version=latest\n   :target: https://pygsp.readthedocs.io\n.. |pypi| image:: https://img.shields.io/pypi/v/pygsp.svg\n   :target: https://pypi.org/project/PyGSP\n.. |zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1003157.svg\n   :target: https://doi.org/10.5281/zenodo.1003157\n.. |license| image:: https://img.shields.io/pypi/l/pygsp.svg\n   :target: https://github.com/epfl-lts2/pygsp/blob/master/LICENSE.txt\n.. |pyversions| image:: https://img.shields.io/pypi/pyversions/pygsp.svg\n   :target: https://pypi.org/project/PyGSP\n.. |travis| image:: https://img.shields.io/travis/com/epfl-lts2/pygsp.svg\n   :target: https://app.travis-ci.com/github/epfl-lts2/pygsp\n.. |coveralls| image:: https://img.shields.io/coveralls/github/epfl-lts2/pygsp.svg\n   :target: https://coveralls.io/github/epfl-lts2/pygsp\n.. |github| image:: https://img.shields.io/github/stars/epfl-lts2/pygsp.svg?style=social\n   :target: https://github.com/epfl-lts2/pygsp\n.. |binder| image:: https://static.mybinder.org/badge_logo.svg\n   :target: https://mybinder.org/v2/gh/epfl-lts2/pygsp/master?urlpath=lab/tree/examples/playground.ipynb\n.. |conda| image:: https://img.shields.io/conda/vn/conda-forge/pygsp.svg\n   :target: https://anaconda.org/conda-forge/pygsp\n\nThe PyGSP facilitates a wide variety of operations on graphs, like computing\ntheir Fourier basis, filtering or interpolating signals, plotting graphs,\nsignals, and filters. Its core is spectral graph theory, and many of the\nprovided operations scale to very large graphs. The package includes a wide\nrange of graphs, from point clouds like the Stanford bunny and the Swiss roll;\nto networks like the Minnesota road network; to models for generating random\ngraphs like stochastic block models, sensor networks, Erdős–Rényi model,\nBarabási-Albert model; to simple graphs like the path, the ring, and the grid.\nMany filter banks are also provided, e.g. various wavelets like the Mexican\nhat, Meyer, Half Cosine; some low-pass filters like the heat kernel and the\nexponential window; and Gabor filters. Despite all the pre-defined models, you\ncan easily use a custom graph by defining its adjacency matrix, and a custom\nfilter bank by defining a set of functions in the spectral domain.\n\nWhile NetworkX_ and graph-tool_ are tools to analyze the topology of graphs,\nthe aim of the PyGSP is to analyze graph signals, also known as features or\nproperties (i.e., not the graph itself).\nThose three tools are complementary and work well together with the provided\nimport / export facility.\n\n.. _NetworkX: https://networkx.org\n.. _graph-tool: https://graph-tool.skewed.de\n\nThe following demonstrates how to instantiate a graph and a filter, the two\nmain objects of the package.\n\n\u003e\u003e\u003e from pygsp import graphs, filters\n\u003e\u003e\u003e G = graphs.Logo()\n\u003e\u003e\u003e G.compute_fourier_basis()  # Fourier to plot the eigenvalues.\n\u003e\u003e\u003e # G.estimate_lmax() is otherwise sufficient.\n\u003e\u003e\u003e g = filters.Heat(G, scale=50)\n\u003e\u003e\u003e fig, ax = g.plot()\n\n.. image:: ../pygsp/data/readme_example_filter.png\n    :alt:\n.. image:: pygsp/data/readme_example_filter.png\n    :alt:\n\nLet's now create a graph signal: a set of three Kronecker deltas for that\nexample. We can now look at one step of heat diffusion by filtering the deltas\nwith the above defined filter. Note how the diffusion follows the local\nstructure!\n\n\u003e\u003e\u003e import numpy as np\n\u003e\u003e\u003e DELTAS = [20, 30, 1090]\n\u003e\u003e\u003e s = np.zeros(G.N)\n\u003e\u003e\u003e s[DELTAS] = 1\n\u003e\u003e\u003e s = g.filter(s)\n\u003e\u003e\u003e fig, ax = G.plot(s, highlight=DELTAS)\n\n.. image:: ../pygsp/data/readme_example_graph.png\n    :alt:\n.. image:: pygsp/data/readme_example_graph.png\n    :alt:\n\nYou can\n`try it online \u003chttps://mybinder.org/v2/gh/epfl-lts2/pygsp/master?urlpath=lab/tree/examples/playground.ipynb\u003e`_,\nlook at the\n`tutorials \u003chttps://pygsp.readthedocs.io/en/stable/tutorials/index.html\u003e`_\nto learn how to use it, or look at the\n`reference guide \u003chttps://pygsp.readthedocs.io/en/stable/reference/index.html\u003e`_\nfor an exhaustive documentation of the API. Enjoy!\n\nInstallation\n------------\n\nThe PyGSP is available on PyPI::\n\n    $ pip install pygsp\n\nThe PyGSP is available on `conda-forge \u003chttps://github.com/conda-forge/pygsp-feedstock\u003e`_::\n\n    $ conda install -c conda-forge pygsp\n\nThe PyGSP is available in the `Arch User Repository \u003chttps://aur.archlinux.org/packages/python-pygsp\u003e`_::\n\n   $ git clone https://aur.archlinux.org/python-pygsp.git\n   $ cd python-pygsp\n   $ makepkg -csi\n\nContributing\n------------\n\nSee the guidelines for contributing in ``CONTRIBUTING.rst``.\n\nAcknowledgments\n---------------\n\nThe PyGSP was started in 2014 as an academic open-source project for\nresearch purpose at the `EPFL LTS2 laboratory \u003chttps://lts2.epfl.ch\u003e`_.\nThis project has been partly funded by the Swiss National Science Foundation\nunder grant 200021_154350 \"Towards Signal Processing on Graphs\".\n\nIt is released under the terms of the BSD 3-Clause license.\n\nIf you are using the library for your research, for the sake of\nreproducibility, please cite the version you used as indexed by\n`Zenodo \u003chttps://doi.org/10.5281/zenodo.1003157\u003e`_.\nOr cite the generic concept as::\n\n    @misc{pygsp,\n      title = {PyGSP: Graph Signal Processing in Python},\n      author = {Defferrard, Micha\\\"el and Martin, Lionel and Pena, Rodrigo and Perraudin, Nathana\\\"el},\n      doi = {10.5281/zenodo.1003157},\n      url = {https://github.com/epfl-lts2/pygsp/},\n    }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepfl-lts2%2Fpygsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepfl-lts2%2Fpygsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepfl-lts2%2Fpygsp/lists"}