NumPy Viewer

Open .npy and .npz array files in your browser. Inspect the shape and dtype, slice N-dimensional arrays with a dimension mapper, and render any 2-D slice as a heatmap, with nothing uploaded.

Free, no sign-up, and fully client-side. Your file never leaves your browser. Opens .npy, .npz.

Open the viewer and drop a file to get started.

What is a .npy file?

A .npy file is NumPy’s native format for a single array: a small text header describing the dtype, shape and memory order, followed by the raw array bytes. A .npz file is just a zip archive of several .npy arrays under names, which is how people save a handful of related arrays together.

Instead of loading the array in Python just to check its shape or glance at a slice, open it here. ViewKit reads the header, then reads only the slice you are viewing, and shows it as a table or a heatmap. Nothing is uploaded.

What you can do with the NumPy viewer

Shape & dtype

See the array’s shape, dtype and byte order at a glance.

N-dimensional slicing

Map any two axes to a table or heatmap and scrub the others; only the visible slice is materialized.

.npz archives

Open multi-array .npz files and switch between the arrays they contain.

Many dtypes

float16, float32/64, all integer and unsigned widths, booleans and strings are supported.

How to open a NumPy file

  1. 1

    Drop your .npy or .npz file onto the box above (or click to browse). It is read in your browser, nothing uploads.

  2. 2

    For .npz, pick an array; for .npy the array opens directly.

  3. 3

    Use the dimension mapper to slice an N-D array and toggle between a table and a heatmap.

Doing the same thing in code

The equivalent in NumPy:

Python
import numpy as np

arr = np.load("data.npy", mmap_mode="r")   # mmap avoids reading it all
print(arr.shape, arr.dtype)
print(arr[0, :10])

z = np.load("data.npz")                    # a .npz is a zip of arrays
print(z.files)

If the array holds Python objects rather than numbers, np.load reads it only with allow_pickle=True, which executes code stored in the file. NumPy disables this by default. This page reads the header and numeric data without unpickling anything.

NumPy viewer: frequently asked questions

Does it open .npz archives?

Yes. A .npz is a zip of several arrays; you can open it and switch between the arrays inside.

What is the difference between .npy and .npz?

A .npy holds exactly one array: a short header giving the dtype, shape and memory order, then the raw bytes. A .npz is a zip archive containing several .npy entries under names, which is what np.savez writes. That is why a .npz asks you to pick an array first.

Why does np.load say “Object arrays cannot be loaded when allow_pickle=False”?

The file holds Python objects rather than plain numbers, so the values are pickled. Loading them requires unpickling, which executes code contained in the file, and NumPy refuses to do this by default. The header still reports the shape and dtype without reading the object data.

Which dtypes are supported?

float16, float32 and float64, signed and unsigned integers of every width, booleans and fixed-length strings all render.

Is my data uploaded?

No. The file is parsed entirely in your browser; its contents never leave your machine.

Also view in ViewKit