{"id":21333582,"url":"https://github.com/nomonosound/numpy-minmax","last_synced_at":"2025-07-06T19:04:32.163Z","repository":{"id":216756565,"uuid":"726065902","full_name":"nomonosound/numpy-minmax","owner":"nomonosound","description":"A fast function (SIMD-accelerated) for finding the minimum and maximum value in a NumPy array","archived":false,"fork":false,"pushed_at":"2024-08-15T08:21:16.000Z","size":76,"stargazers_count":11,"open_issues_count":9,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-20T12:13:20.859Z","etag":null,"topics":["avx512","c","float32","numpy","numpy-library","python","simd","x86-64"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nomonosound.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2023-12-01T13:13:56.000Z","updated_at":"2024-11-15T05:58:22.000Z","dependencies_parsed_at":"2024-08-01T13:09:12.410Z","dependency_job_id":null,"html_url":"https://github.com/nomonosound/numpy-minmax","commit_stats":null,"previous_names":["nomonosound/numpy-minmax"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomonosound%2Fnumpy-minmax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomonosound%2Fnumpy-minmax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomonosound%2Fnumpy-minmax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nomonosound%2Fnumpy-minmax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nomonosound","download_url":"https://codeload.github.com/nomonosound/numpy-minmax/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225814706,"owners_count":17528295,"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":["avx512","c","float32","numpy","numpy-library","python","simd","x86-64"],"created_at":"2024-11-21T23:13:21.486Z","updated_at":"2025-07-06T19:04:32.156Z","avatar_url":"https://github.com/nomonosound.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# numpy-minmax: a fast function for finding the minimum and maximum value in a NumPy array\n\nNumPy lacked an optimized minmax function, so we wrote our own. At Nomono, we use it for audio processing, but it can be applied any kind of float32 ndarray.\n\n* Written in C and takes advantage of AVX/AVX512 for speed\n* Roughly **2.3x speedup** compared to the numpy amin+amax equivalent (tested on Intel CPU with numpy 1.24-1.26)\n* The fast implementation is tailored for float32 arrays that are C-contiguous, F-contiguous or 1D strided. Strided arrays with ndim \u003e= 2 get processed with numpy.amin and numpy.amax, so no perf gain there. There is also a fast implementation for contiguous int16 arrays.\n\n# Installation\n\n[![PyPI version](https://img.shields.io/pypi/v/numpy-minmax.svg?style=flat)](https://pypi.org/project/numpy-minmax/)\n![python 3.9, 3.10, 3.11, 3.12, 3.13](https://img.shields.io/badge/Python-3.9%20|%203.10%20|%203.11%20|%203.12%20|%203.13-blue)\n![os: Linux, macOS, Windows](https://img.shields.io/badge/OS-Linux%20%28arm%20%26%20x86--64%29%20|%20macOS%20%28arm%29%20|%20Windows%20%28x86--64%29-blue)\n\n```\n$ pip install numpy-minmax\n```\n\n# Usage\n\n```py\nimport numpy_minmax\nimport numpy as np\n\narr = np.arange(1337, dtype=np.float32)\nmin_val, max_val = numpy_minmax.minmax(arr)  # 0.0, 1336.0\n```\n\n# Changelog\n\n## [0.5.0] - 2025-06-28\n\n### Added\n\n* Add support for Python 3.13\n\nFor the complete changelog, go to [CHANGELOG.md](CHANGELOG.md)\n\n# Development\n\n* Install dev/build/test dependencies as denoted in pyproject.toml\n* `CC=clang pip install -e .`\n* `pytest`\n\n# Running benchmarks\n* Install diplib `pip install diplib`\n* `python scripts/perf_benchmark.py`\n\n# Acknowledgements\n\nThis library is maintained/backed by [Nomono](https://nomono.co/), a Norwegian audio AI startup.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomonosound%2Fnumpy-minmax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnomonosound%2Fnumpy-minmax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnomonosound%2Fnumpy-minmax/lists"}