All Projects → epfl-lts2 → Pygsp

epfl-lts2 / Pygsp

Licence: bsd-3-clause
Graph Signal Processing in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pygsp

AudioProcessing-toolbox
extract the time domain or frequent domain features from wav format audio
Stars: ✭ 26 (-90.37%)
Mutual labels:  signal-processing
gqlalchemy
GQLAlchemy is a library developed with the purpose of assisting in writing and running queries on Memgraph. GQLAlchemy supports high-level connection to Memgraph as well as modular query builder.
Stars: ✭ 39 (-85.56%)
Mutual labels:  graphs
ai-distillery
Automatically modelling and distilling knowledge within AI. In other words, summarising the AI research firehose.
Stars: ✭ 20 (-92.59%)
Mutual labels:  graphs
lovelace-plotly-graph-card
Highly customisable Lovelace card to display interactive graphs. Brings scrolling, zooming, and much more!
Stars: ✭ 38 (-85.93%)
Mutual labels:  graphs
tmo-live-graph
A simpe react app that plots a live view of the T-Mobile Home Internet Nokia 5G Gateway signal stats, helpful for optimizing signal.
Stars: ✭ 15 (-94.44%)
Mutual labels:  signal-processing
py-algorithms
Algorithms and Data Structures, solutions to common CS problems.
Stars: ✭ 26 (-90.37%)
Mutual labels:  graphs
fusioncharts-dist
FusionCharts JavaScript Charting library. Over 95+ charts and 1,400+ maps to choose from, with integrations available for all popular JavaScript frameworks & back-end programming languages.
Stars: ✭ 65 (-75.93%)
Mutual labels:  graphs
Nara wpe
Different implementations of "Weighted Prediction Error" for speech dereverberation
Stars: ✭ 265 (-1.85%)
Mutual labels:  signal-processing
disparity filter
Implements a disparity filter in Python, based on graphs in NetworkX, to extract the multiscale backbone of a complex weighted network (Serrano, et al., 2009)
Stars: ✭ 17 (-93.7%)
Mutual labels:  graphs
scikit-maad
Open-source and modular toolbox for quantitative soundscape analysis in Python
Stars: ✭ 21 (-92.22%)
Mutual labels:  signal-processing
filter-c
Elegant Butterworth and Chebyshev filter implemented in C, with float/double precision support. Works well on many platforms. You can also use this package in C++ and bridge to many other languages for good performance.
Stars: ✭ 56 (-79.26%)
Mutual labels:  signal-processing
Java-Questions-and-Solutions
This repository aims to solve and create new problems from different spheres of coding. A path to help students to get access to solutions and discuss their doubts.
Stars: ✭ 34 (-87.41%)
Mutual labels:  graphs
beqdesigner
No description or website provided.
Stars: ✭ 15 (-94.44%)
Mutual labels:  signal-processing
piker
#nontina, #paperhands,, #pwnzebotz, #tradezbyguille
Stars: ✭ 63 (-76.67%)
Mutual labels:  signal-processing
Awesome Speech Enhancement
A tutorial for Speech Enhancement researchers and practitioners. The purpose of this repo is to organize the world’s resources for speech enhancement and make them universally accessible and useful.
Stars: ✭ 257 (-4.81%)
Mutual labels:  signal-processing
graphisual
A web application that lets the end users create graphs and visualize algorithms on them.
Stars: ✭ 64 (-76.3%)
Mutual labels:  graphs
phpstats
CLI Statistics and dependency graphs for PHP
Stars: ✭ 61 (-77.41%)
Mutual labels:  graphs
Rtl 433
Program to decode radio transmissions from devices on the ISM bands (and other frequencies)
Stars: ✭ 3,379 (+1151.48%)
Mutual labels:  signal-processing
Neurokit
NeuroKit2: The Python Toolbox for Neurophysiological Signal Processing
Stars: ✭ 264 (-2.22%)
Mutual labels:  signal-processing
plain-free-bootstrap-admin-template
Free Bootstrap 5 Admin and Dashboard Template that comes with all essential dashboard components, elements, charts, graph and application pages. Download now for free and use with personal or commercial projects.
Stars: ✭ 141 (-47.78%)
Mutual labels:  graphs

======================================== PyGSP: Graph Signal Processing in Python

The PyGSP is a Python package to ease Signal Processing on Graphs <https://arxiv.org/abs/1211.0053>. The documentation is available on Read the Docs <https://pygsp.readthedocs.io> and development takes place on GitHub <https://github.com/epfl-lts2/pygsp>. A (mostly unmaintained) Matlab version <https://epfl-lts2.github.io/gspbox-html> exists.

+-----------------------------------+ | |doc| |pypi| |conda| |binder| | +-----------------------------------+ | |zenodo| |license| |pyversions| | +-----------------------------------+ | |travis| |coveralls| |github| | +-----------------------------------+

.. |doc| image:: https://readthedocs.org/projects/pygsp/badge/?version=latest :target: https://pygsp.readthedocs.io .. |pypi| image:: https://img.shields.io/pypi/v/pygsp.svg :target: https://pypi.org/project/PyGSP .. |zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1003157.svg :target: https://doi.org/10.5281/zenodo.1003157 .. |license| image:: https://img.shields.io/pypi/l/pygsp.svg :target: https://github.com/epfl-lts2/pygsp/blob/master/LICENSE.txt .. |pyversions| image:: https://img.shields.io/pypi/pyversions/pygsp.svg :target: https://pypi.org/project/PyGSP .. |travis| image:: https://img.shields.io/travis/com/epfl-lts2/pygsp.svg :target: https://travis-ci.com/epfl-lts2/pygsp .. |coveralls| image:: https://img.shields.io/coveralls/epfl-lts2/pygsp.svg :target: https://coveralls.io/github/epfl-lts2/pygsp .. |github| image:: https://img.shields.io/github/stars/epfl-lts2/pygsp.svg?style=social :target: https://github.com/epfl-lts2/pygsp .. |binder| image:: https://static.mybinder.org/badge_logo.svg :target: https://mybinder.org/v2/gh/epfl-lts2/pygsp/master?urlpath=lab/tree/examples/playground.ipynb .. |conda| image:: https://anaconda.org/conda-forge/pygsp/badges/installer/conda.svg :target: https://anaconda.org/conda-forge/pygsp

The PyGSP facilitates a wide variety of operations on graphs, like computing their Fourier basis, filtering or interpolating signals, plotting graphs, signals, and filters. Its core is spectral graph theory, and many of the provided operations scale to very large graphs. The package includes a wide range of graphs, from point clouds like the Stanford bunny and the Swiss roll; to networks like the Minnesota road network; to models for generating random graphs like stochastic block models, sensor networks, Erdős–Rényi model, Barabási-Albert model; to simple graphs like the path, the ring, and the grid. Many filter banks are also provided, e.g. various wavelets like the Mexican hat, Meyer, Half Cosine; some low-pass filters like the heat kernel and the exponential window; and Gabor filters. Despite all the pre-defined models, you can easily use a custom graph by defining its adjacency matrix, and a custom filter bank by defining a set of functions in the spectral domain.

While NetworkX_ and graph-tool_ are tools to analyze the topology of graphs, the aim of the PyGSP is to analyze graph signals, also known as features or properties (i.e., not the graph itself). Those three tools are complementary and work well together with the provided import / export facility.

.. _NetworkX: https://networkx.org .. _graph-tool: https://graph-tool.skewed.de

The following demonstrates how to instantiate a graph and a filter, the two main objects of the package.

from pygsp import graphs, filters G = graphs.Logo() G.compute_fourier_basis() # Fourier to plot the eigenvalues.

G.estimate_lmax() is otherwise sufficient.

g = filters.Heat(G, scale=50) fig, ax = g.plot()

.. image:: ../pygsp/data/readme_example_filter.png :alt: .. image:: pygsp/data/readme_example_filter.png :alt:

Let's now create a graph signal: a set of three Kronecker deltas for that example. We can now look at one step of heat diffusion by filtering the deltas with the above defined filter. Note how the diffusion follows the local structure!

import numpy as np DELTAS = [20, 30, 1090] s = np.zeros(G.N) s[DELTAS] = 1 s = g.filter(s) fig, ax = G.plot(s, highlight=DELTAS)

.. image:: ../pygsp/data/readme_example_graph.png :alt: .. image:: pygsp/data/readme_example_graph.png :alt:

You can try it online <https://mybinder.org/v2/gh/epfl-lts2/pygsp/master?urlpath=lab/tree/examples/playground.ipynb>, look at the tutorials <https://pygsp.readthedocs.io/en/stable/tutorials/index.html> to learn how to use it, or look at the reference guide <https://pygsp.readthedocs.io/en/stable/reference/index.html>_ for an exhaustive documentation of the API. Enjoy!

Installation

The PyGSP is available on PyPI::

$ pip install pygsp

The PyGSP is available on conda-forge <https://github.com/conda-forge/pygsp-feedstock>_::

$ conda install -c conda-forge pygsp

The PyGSP is available in the Arch User Repository <https://aur.archlinux.org/packages/python-pygsp>_::

$ git clone https://aur.archlinux.org/python-pygsp.git $ cd python-pygsp $ makepkg -csi

Contributing

See the guidelines for contributing in CONTRIBUTING.rst.

Acknowledgments

The PyGSP was started in 2014 as an academic open-source project for research purpose at the EPFL LTS2 laboratory <https://lts2.epfl.ch>_. This project has been partly funded by the Swiss National Science Foundation under grant 200021_154350 "Towards Signal Processing on Graphs".

It is released under the terms of the BSD 3-Clause license.

If you are using the library for your research, for the sake of reproducibility, please cite the version you used as indexed by Zenodo <https://doi.org/10.5281/zenodo.1003157>_. Or cite the generic concept as::

@misc{pygsp,
  title = {PyGSP: Graph Signal Processing in Python},
  author = {Defferrard, Micha\"el and Martin, Lionel and Pena, Rodrigo and Perraudin, Nathana\"el},
  doi = {10.5281/zenodo.1003157},
  url = {https://github.com/epfl-lts2/pygsp/},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].