npDSP
A small, composable digital signal processing library built on NumPy.
npDSP provides simple DSP blocks that can be combined into pipelines using Python's >> operator.
Installation
Install from PyPI:
pip install npDSP
Or with uv:
uv add npDSP
Quick start
import numpy as np
import npdsp
pipeline = npdsp.Add(1) >> npdsp.Multiply(2)
x = np.array([1, 2, 3])
y = pipeline(x)
print(y)
# [ 4 6 8]
Blocks can also be given names and accessed through a pipeline:
pipeline = npdsp.Add(1, name="offset") >> npdsp.Multiply(2, name="gain")
print(pipeline["gain"])
Features
- NumPy-based signal processing
- Composable processing blocks
- Pipeline construction with
>> - Stateful processing blocks such as
Delay - Mathematical operations
- Conversion and utility blocks
- Type hints
- Block profiling
- Sphinx API documentation
Documentation
Documentation is available on Read the Docs.
The documentation includes:
- Getting Started
- Concepts
- API Reference
- Block reference
- Core API reference
- Examples
Development
npDSP uses uv for development and dependency management.
Clone the repository:
git clone https://github.com/mrhiemstra/npDSP.git
cd npDSP
Install the development dependencies:
uv sync
Run the test suite:
uv run pytest
Build the documentation:
uv run sphinx-build -b html docs/source docs/build/html
Build the package:
uv build
Requirements
- Python 3.10+
- NumPy 2.2.6+
- si-prefix 1.3.3+
- typing-extensions 4.16.0+
License
npDSP is released under the MIT License.
Release files for npdsp 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| npdsp-0.0.3.tar.gz | 16.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| npdsp-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.7 kB
Release files / npdsp-0.0.3.tar.gz
| Download URL | npdsp-0.0.3.tar.gz |
|---|---|
| Size | 16.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a89554bc3abf2741e1ac93815c820d6dfc7c101842ddeaad36db90a45f158f9d
|
|
BLAKE2b-256 checksum How to use checksums |
326cd0a37ec941d78759ea638a217a45f8f26342bb93b2ea4961e735525d5beb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.
Transparency logRelease files / npdsp-0.0.3-py3-none-any.whl
| Download URL | npdsp-0.0.3-py3-none-any.whl |
|---|---|
| Size | 23.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3395d413f0ee59987cc13525b7eee21289be0cbb27803716c59cf9c91c463dc6
|
|
BLAKE2b-256 checksum How to use checksums |
35496c5e16acbf994f33008e04e1e408a773f5c3125d0356ea2f1af73ccd4935
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.
Transparency log