NumPy .npy Format Version 2.0 — Header Beyond 64 KiB (.npy)
A 300-field structured array whose descriptor is too long for a version 1.0 header, forcing format version 2.0 and its four-byte header-length field. A hand-rolled parser that assumes the two-byte 1.0 field mis-locates the data section entirely.
| Field | Value |
|---|---|
| Format version | 2.0 |
| Header length field | 4 bytes little-endian (version 1.0 uses 2) |
| Total header bytes | 8192 |
| Why version 2.0 | 300 named float32 fields overflow the 65535-byte 1.0 header limit |
| Fields | channel_000_mV .. channel_299_mV |
| Records | 4 |
Specifications
- Npy Version
- 2.0
- Fields
- 300
- Records
- 4
- Header Length Field
- 4 bytes (1.0 uses 2)
- Total Header Bytes
- 8192
- Reason
- a 300-field descriptor exceeds the 65535-byte version 1.0 limit
Testing contract
Expected to pass- Scenario
- Read the version bytes at offset 6 and 7, then use the correct header-length width to locate the start of the data.
- Expected result
- The version reads as 2.0, the header length occupies four bytes and totals 8192 bytes including the magic, and the 300 fields parse in declaration order.
What is a .npy file?
NPY is NumPy's native binary format for a single array. A short header records the dtype, shape, and memory order, followed by the raw array bytes, so an array round-trips exactly without any text parsing. It is the standard way to persist embeddings, tensors, and numeric matrices in the Python data stack.
How to use this file
Use an example .npy to test array loaders (numpy.load), tensor and embedding pipelines, and converters between .npy, JSON, and columnar formats like Parquet.
How to use this file for testing
“NumPy .npy Format Version 2.0 — Header Beyond 64 KiB (.npy)” is a deterministic Novus Examples fixture for Scientific data, Serialization testing, Error handling. Citation catalogs (BibTeX, RIS), chemistry structures (MDL Molfile, PDB), and gridded binary data (NetCDF, FITS) — for testing reference managers, molecule viewers, and scientific-data loaders.
Documented properties for this file: 4 records · 300 fields. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Scientific fixtures are small, valid, and fully synthetic — no real organism, patient, sample, or observation. Point your parser or loader at the file and check it reads the documented records, variables, or headers; binary formats ship a readable twin or metadata listing for comparison.
Related files
- npyNumPy .npy — float16 at Its Limits (.npy)Every structurally interesting float16 value in one array: one plus epsilon, the largest finite value, the smallest normal and subnormal, negative zero, infinity and a NaN. It is the compact half-precision counterpart to the float32 and float64 boundary fixtures.

- npyNumPy .npy — Zero-Dimensional Scalar (.npy)A rank-0 .npy holding a single double, whose header shape is the empty tuple rather than (1,). Indexing it with [0] raises rather than returning the value, so it separates parsers that model rank properly from parsers that assume at least one axis.

- npyNumPy .npy — Zero-Length Array With Real Shape (.npy)A valid .npy file with a full header, a declared (0, 4) shape and a data section of zero bytes. It preserves the column count across an empty result, and it separates readers that model emptiness from readers that treat it as failure.

- binDICOM-Shaped Stream — No Preamble, No DICM Magic (.bin)The identical element stream with the 128-byte preamble and the DICM magic stripped, which is how DICOM often arrives out of a network transfer or a database blob column. It is not a conformant Part 10 file and its content is entirely recoverable, so a reader should fall back rather than reject.

- fitsFITS BLANK — Undefined Integer Pixels (.fits)Integer FITS images mark undefined pixels with the BLANK keyword, and BLANK is compared against the stored value before BZERO and BSCALE are applied. Scale first and the four undefined pixels turn into a perfectly plausible zero, which is the ordering bug this file exists to expose.

- fitsFITS Header-Only — Valid File With No Pixels (.fits)A completely valid FITS file consisting of one 2880-byte header block and no data unit, which the standard permits whenever NAXIS is 0. It separates readers that model the data array as optional from readers that treat 'no pixels' as corruption.

Generated by generation/scientific.py. Free for any use, no attribution required — license.