skillfed

numpy-rms

A fast python library for calculating the RMS of a NumPy array

numpy-rms v0.7.0 206.1K downloads/30d#9,578 on PyPI5
Permissive license MIT License Copyright (c) 2024 Nomono Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the… (full text in the JSON record) Active released

What it is and what it does

numpy-rms is a specialized NumPy extension that computes Root Mean Square values over sliding windows in arrays using hand-optimized C code with SIMD instructions. It targets audio and signal-processing workflows where RMS calculations are a bottleneck, offering speed gains by leveraging CPU vector instructions (AVX on x86-64, NEON on ARM) and C-level efficiency.

The package wraps a fast C implementation via cffi and provides prebuilt wheels for modern Python versions (3.10–3.14) and common platforms, reducing installation friction. It is tailored for C-contiguous 1-D and 2-D float32 arrays, making it most useful in audio processing, signal analysis, and scientific computing where batch RMS calculations are frequent.

Use it for:

  • Audio signal analysis: compute RMS energy levels over time windows for loudness metering or normalization.
  • Signal processing pipelines: calculate windowed RMS as a feature for machine learning on time-series data.
  • Real-time audio monitoring: efficiently compute RMS metrics in streaming or batch audio processing workflows.
  • Accelerometer/sensor data: extract RMS statistics from high-frequency motion or vibration sensor streams.
  • Quality assurance in audio production: measure signal integrity and noise floor via windowed RMS metrics.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Calculates Root Mean Square (RMS) values over sliding windows in NumPy arrays using vectorized C code with SIMD acceleration (AVX on x86-64, NEON on ARM).

Yes, if you need fast windowed RMS calculations on NumPy float32 arrays in audio, signal, or scientific workflows. The compiled SIMD implementation and wide platform/Python coverage make it a low-friction drop-in for performance-critical RMS loops. Skip it if you only need occasional RMS calls or work with non-float32 dtypes—standard NumPy is sufficient.

Install

numpy-rms on PyPI

pip

pip install numpy-rms

uv

uv add numpy-rms

poetry

poetry add numpy-rms

Installing numpy-rms

Before you install

Medium install friction due to compiled C extension with cffi dependency; however, prebuilt wheels cover common platforms (x86-64, ARM64, Windows, macOS, Linux variants) and Python 3.10–3.14, reducing build-from-source scenarios. Active maintenance with recent release.

License in practice

MIT License (permissive) allows unrestricted use, modification, and distribution in both open and closed projects with minimal obligations—only attribution and license inclusion required.

Quickstart

pip install numpy-rms

import numpy_rms
import numpy as np

arr = np.arange(40, dtype=np.float32)
rms_series = numpy_rms.rms(arr, window_size=10)

Requires numpy and cffi; C compiler needed if prebuilt wheel unavailable for your platform/Python version.

Verify before relying

  • Whether the package supports non-float32 dtypes or only float32 arrays.
  • Performance characteristics and typical speedup vs. pure-NumPy implementations.
  • Whether window_size parameter supports stride/overlap configuration.

Package facts

License MIT License Copyright (c) 2024 Nomono Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the… (full text in the JSON record) (permissive)
Python support not specified
Install friction medium — platform-specific wheel
Runtime dependencies 2 — cffi, numpy
Maintenance actively maintained — 49 days since the last release
Last repo commit
First released
Downloads 206,054/month — #9,578 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: numpy_rms-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl; numpy_rms-0.7.0-cp310-cp310-macosx_11_0_arm64.whl; numpy_rms-0.7.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; numpy_rms-0.7.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; numpy_rms-0.7.0-cp310-cp310-musllinux_1_2_aarch64.whl; numpy_rms-0.7.0-cp310-cp310-musllinux_1_2_x86_64.whl; numpy_rms-0.7.0-cp310-cp310-win_amd64.whl; numpy_rms-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl; numpy_rms-0.7.0-cp311-cp311-macosx_11_0_arm64.whl; numpy_rms-0.7.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; numpy_rms-0.7.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; numpy_rms-0.7.0-cp311-cp311-musllinux_1_2_aarch64.whl; numpy_rms-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl; numpy_rms-0.7.0-cp311-cp311-win_amd64.whl; numpy_rms-0.7.0-cp312-cp312-macosx_10_13_x86_64.whl; numpy_rms-0.7.0-cp312-cp312-macosx_11_0_arm64.whl; numpy_rms-0.7.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; numpy_rms-0.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; numpy_rms-0.7.0-cp312-cp312-musllinux_1_2_aarch64.whl; numpy_rms-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl

Development Status :: 3 - AlphaIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Multimedia :: Sound/AudioTopic :: Scientific/EngineeringTopic :: Software Development :: Libraries

Tags

rms calculation numpyroot mean square windowedfast rms computationsimd accelerated rmssliding window rmsaudio signal rmsnumpy array rms
simd-acceleratedaudio-processingsignal-analysis

More Libraries packages