Analyze
NumPy Array
Open a NumPy array in the browser and see what is actually in it: the values, the shape and the dtype, without starting Python. A `.npz` offers each of its arrays by name; anything with more than two dimensions gets a slider per leading axis, so you step through the stack rather than guessing. The statistics say what the numbers do — and vanish for arrays where a mean would be meaningless, instead of printing a number that is not one.
Real ligation-count matrices as .npy and .npz — shape, dtype, per-axis slicing, and a published file the viewer refuses because it is a pickle
What it does
- 01A .npy opens as its own tab: the values in a grid, with the array’s shape and dtype stated
- 02A .npz archive offers every array it holds, by name — both the plain and the compressed form
- 03Arrays with more than two dimensions get one index slider per leading axis, so you step through slices the way you would in NumPy
- 04The drawn window moves over a face larger than the grid, and the row and column numbers are the array’s own
- 05Transpose swaps the two drawn axes for a tall, narrow face
- 06Min, max, mean and standard deviation for numeric arrays — and deliberately absent for strings and records, where a mean would be a category error
- 07Every dtype NumPy writes is read: all integer and float widths in both byte orders, complex, bool, bytes, Unicode, datetime64 and timedelta64, void, and structured records including nested and sub-array fields
- 08Fortran-ordered arrays read in the same order NumPy reports, so a column-major file is not silently transposed
- 0964-bit integers stay exact rather than passing through a float
- 10Object-dtype arrays are refused with their reason, because NumPy stores those as a Python pickle
What it runs on
A TypeScript port of NumPy’s own array-format reader, written against numpy’s reference implementation rather than a description of it, and checked value-for-value against arrays that numpy wrote: 74 files spanning 63 distinct dtypes, both byte orders, C and Fortran storage, 0-dimensional through 4-dimensional shapes, empty arrays and all three header versions. The header is read without the data, so a file’s shape and dtype cost nothing however large the array; only the cells on screen are decoded. The panel runs on @ports/tensor.
Everything runs client-side. Files are parsed in the browser and projects are saved on this machine, so an unpublished sequence is never uploaded.
Questions
- Is my array uploaded anywhere?
- No. It is read in the browser from the copy stored in your project.
- Why will it not open my .npy?
- The most common reason is an object dtype. NumPy stores those as a Python pickle of the whole array, and unpickling runs arbitrary code — NumPy itself refuses to load one unless you pass allow_pickle=True. Re-save the array with a concrete dtype. Extended-precision floats (float96, float128) are also refused, because no JavaScript number type holds one and rounding it would silently change the value.
- How much of a large array is shown?
- A bounded window, and the exact rows and columns on screen are always stated — with controls to move that window anywhere in the array, so nothing is unreachable.
- Does it handle arrays with more than two dimensions?
- Yes. The last two axes are drawn as the grid and every leading axis becomes an index slider, which is how you would read one in NumPy: pick the slice, then look at the face.
Also searched as
open npy file online · npz viewer · view numpy array without python · inspect npy shape and dtype · read npz archive in browser · numpy array viewer online free · what is in my npy file · open a numpy file without importing numpy · view a 3d numpy array slice · npy dtype viewer