mrkeyoor.com_
Sun 06 Sept 05:50 UTC
Dataevaluationupdated 06 Sept 2026

numpy review

NumPy is the core Python library for storing and working with large grids of numbers. It gives scientific and data applications a shared array format plus tools for algebra, Fourier transforms, random sampling, and connecting Python to C, C++, and Fortran code.

trackingstars / 7d
Verdict

Our build completed in 4 seconds, but our test command exited 3 with 2 setup/collection errors before running a single test. Use NumPy when Python software needs the standard foundation for numerical arrays: its scope, activity, and ecosystem position are unusually convincing. Just do not mistake an easy end-user install for an equally simple contributor checkout, because our 899-second installation and failed test discovery showed real friction.

We ran it

Install✓ · 899s36 packages · 37 MB
Build✓ · 4s
Tests✗ · 3s0 passed · 0 failed · 2 errors of 2 (pytest)
Known vulns0(pip-audit)
Repo8438 files~1,012,012 lines of source · 69.4 MB · 24 CI workflows

Answers from our run

Does numpy build from source?

Dependencies installed in 899 seconds (36 packages), and the build succeeded in 4 seconds. We cloned commit 22c80bc into a clean Debian container with 3 CPUs and no project-specific setup.

Do numpy's tests pass?

Yes: 0 of 2 passed when we ran the project's own test command (pytest), with 2 collection errors. Some failures need services or credentials a bare container does not have.

Does numpy have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use numpy?

People mainly working with labeled business tables, where pandas is usually friendlier

What are the alternatives to numpy?

SciPy, pandas, JAX. Our build completed in 4 seconds, but our test command exited 3 with 2 setup/collection errors before running a single test.

Setup3/5Install worked, but took 899 seconds and test collection failed
Docs4/5Clear capability, testing, contribution, and support links
Community5/5Recent push, recent release, public channels, broad adoption
Maturity5/5Long-lived numerical foundation with active maintenance

Who it’s for

Python developers building numerical or scientific software
Data teams that need fast, dependable array operations beneath higher-level tools
Library authors who need a common format for exchanging multidimensional numeric data
Researchers who value a mature project with public contribution channels

Who it’s NOT for

People mainly working with labeled business tables, where pandas is usually friendlier
Teams expecting a tiny pure-Python dependency with an instant source install
Contributors who need a generic pytest command to pass immediately on a fresh clone
Applications that need a complete visualization, database, or machine-learning product by itself

Setup reality

In our run, installation succeeded in 899 seconds, adding 36 packages and using 37 MB on disk; the build then succeeded in 4 seconds. Tests failed with exit code 3 after 3 seconds: pytest reported 0 passed, 0 failed, and 2 collection/setup errors, both ending at a vendored Meson test script that raised SystemExit: 0. The README says NumPy requires pytest, gives a one-line numpy.test() command, and names Meson, Cython, and Hypothesis as optional test dependencies, but our fresh Debian run shows that cloning the repository and invoking broad test discovery is not automatically a clean test experience.

It is the common numerical layer beneath Python software

NumPy calls itself the fundamental package for scientific computing with Python, and that restrained description fits. The repository dates to 2010, has 32,668 stars, and was pushed on September 5, 2026. It represents multidimensional numeric data and applies established mathematical operations.

Its centerpiece is an N-dimensional array. The README also lists broadcasting, linear algebra, Fourier transforms, random-number capabilities, and integration with C, C++, and Fortran. These features let libraries exchange one familiar array type. Version 2.5.2 arrived on August 9, 2026, making this actively maintained infrastructure rather than an archaeological dependency.

That narrow scope is a strength. NumPy does not claim to provide a complete user workflow. It supplies the numerical substrate on which other systems can build. We measured 8,438 files, about 1,012,012 lines of source, and a 69.4 MB checkout, so contributors should expect a substantial multi-language codebase, not a weekend-sized Python utility.

Our install and build worked, but test discovery did not

In our fresh Debian container, installation succeeded in 899 seconds. It installed 36 packages and occupied 37 MB on disk, then the build succeeded in 4 seconds. That is a working path to a built checkout, but nearly 15 minutes for installation is meaningful friction for an impatient contributor or short-lived CI job. These are results from our box, not claims about normal package-index installs.

Testing failed before any real suite run. Pytest exited 3 after 3 seconds, reporting 0 passed, 0 failed, and 2 collection/setup errors out of 2. The log ends while importing vendored-meson/meson/test cases/common/26 find program/scripts/test_subdir.py; that script calls exit(0), recorded as SystemExit: 0. This proves a discovery-time collision, but the log does not establish a deeper cause.

Pip-audit found 0 known vulnerabilities. We also found 24 CI workflow files, no Dockerfile, and no top-level tests directory. The workflows show substantial automation, while the missing Dockerfile means contributors do not get a repository-supplied container path. Most importantly, 0 executed tests means our run cannot certify runtime correctness, even though installation and building succeeded.

The documented surface is focused and useful

The README quickly links the website, documentation, source, contributor guide, bug tracker, mailing list, security policy, and community pages. It names pytest as required and Meson, Cython, and Hypothesis as optional dependencies for 3 specialized testing areas. That specificity helps, although our 2 collection errors show the short testing section does not explain every fresh-checkout path.

The interoperability story is another concrete advantage. Native-code integration matters when Python coordinates performance-sensitive routines, and broadcasting applies operations across compatible array shapes. Linear algebra, Fourier transforms, and random routines provide one coherent base instead of several disconnected packages. Version 2.5.2 is not a flashy all-in-one product; it is a shared vocabulary for numerical Python.

Contribution guidance is practical too. The project asks people considering large changes to start on the mailing list, while welcoming fixes, reviews, tutorials, translations, website work, outreach, design, and fundraising. It advertises a biweekly community call and both public and private contact routes. For a project carrying 2,336 open issues, that breadth matters because maintenance extends beyond merging array features.

Contributor rough edges need planning

The largest caveat is that undirected pytest collection did not work in our evaluation. A newcomer could see the README's pytest requirement, run it from the root, and hit 2 setup errors before any test executes. The README gives a different command, python -c "import numpy, sys; sys.exit(numpy.test() is False)", so contributors should follow that documented route and consult the developer guide instead of assuming generic discovery is supported.

Build complexity is the second cost. The README mentions optional tools for 3 testing areas and interfaces with 3 native languages. That reach is valuable, but it expands the compilers, headers, platform details, and specialized tests maintainers may meet. We should not blame missing system packages for this run, since the build succeeded and the recorded failure was SystemExit: 0 during collection.

The supplied metadata reports the license as NOASSERTION. That field does not prove NumPy lacks licensing information, but it is not a usable determination either. Organizations with formal compliance rules should inspect the repository's licensing files and dependency notices before approval. With a 69.4 MB checkout and 1,012,012 source lines, reviewing or vendoring everything is a serious task.

Recent activity outweighs the large issue queue

The health signals are strong when read together. Release v2.5.2 was 28 days old on the review date, and the last push was less than 1 day old. The 2,336 open issues indicate a large maintenance surface, not automatically neglect; supplied data does not show response times or triage rates. One community item records 32,643 stars, close to the snapshot's 32,668, supporting broad adoption without proving satisfaction or a long-term release cadence.

Governance adds context: NumPy is community-driven, powered by NumFOCUS, publishes a code of conduct, provides a security-reporting route, and invites contribution in many forms. There is also a community call every 2 weeks. Combined with the September 5 push and August 9 release, this looks like an active mature project with a heavy queue, not a stale repository coasting on its name.

It belongs low in the stack, beneath task-specific tools

Use NumPy directly for multidimensional arrays, shape-aware calculations, transforms, or boundaries to native routines. Put domain layers above it: pandas for labeled tables, SciPy for higher-level scientific algorithms, and application code for storage, validation, interfaces, and business rules. That separation keeps NumPy doing the focused job its 2.5.2 release is designed to do.

Choose JAX when program transformation or accelerator execution drives the architecture, and choose pandas or SciPy when their higher-level abstractions match the job. For numerical Python generally, NumPy remains the sensible default foundation. Our 4-second build supports confidence in its source pipeline, while the 899-second install and 0-test outcome warn contributors to budget setup time and follow the prescribed test path.

Alternatives

ProjectWhat it isPick it when
SciPyA scientific-computing library with higher-level algorithms built around NumPy arrays.Pick this instead when optimization, integration, signal processing, or statistics are the main job.
pandas gh↗A Python library centered on labeled tables and time-series data.Pick this instead when columns, indexes, joins, and missing business data matter more than raw multidimensional arrays.
JAX gh↗An array-computing library focused on program transformations and accelerator-oriented workloads.Pick this instead when automatic differentiation, compilation, or accelerator execution is a central requirement.

What people are saying

  1. [velocity-scout] numpy/numpy

Sources

  1. NumPy GitHub repository
  2. NumPy homepage

More data reviews

markitdown · datasets · spark · IPTV · label-studio · greptimedb · the whole board →