Skip to main content

Quick GUI viewer for .npy / .npz arrays with image, table, and cross-section views

Project description

npyquick logo

Why npyquick?

Researchers often need to quickly inspect .npy and .npz files without writing a notebook, launching an IDE, or remembering the array shape in advance.

npyquick is designed as a small, practical viewer for this job:

  • open NumPy array files directly from the terminal or file manager
  • inspect common scientific data layouts immediately
  • stay lightweight and easy to understand
  • avoid turning a simple array viewer into a full image-processing application

Installation

With pip:

pip install npyquick

With conda:

conda env create -f environment.yml
conda activate npyquick

Dependencies: Python ≥ 3.10, NumPy, SciPy, Matplotlib, and PySide6.

Usage

npyquick                        # open GUI
npyquick path/to/file.npy       # open with a file
npyquick path/to/file.npz       # open a multi-array archive

Files can be opened via File › Open (Ctrl+O) or by dragging and dropping onto the window.

Features

Image view

Preview 2D grayscale arrays and RGB arrays with interactive zoom, pan, colormap control, brightness adjustment, and a draggable cross-section profile.

Image view of an RGB array

Histogram view

Inspect value distributions with linear or log-scaled counts, robust range selection, summary statistics, and NaN / Inf reporting.

Histogram view

Line Plot view

Display 1D signals and paired (x, y) arrays with interactive zoom, pan, reset, and optional log-scaled axes.

Line plot view

Table view

Fallback preview for arrays that are not naturally displayed as images or line plots, including higher-dimensional, complex, object, scalar, or empty arrays.

Table view

.npz archives

When a .npz archive contains multiple arrays, npyquick shows a key selector with each array's name, shape, and dtype. Switching the selected key reloads the active view.

Open an .npz archive

For detailed display rules, normalization behavior, downsampling, and performance limits, see Display behavior.

Keyboard shortcuts

Shortcut Action
Ctrl+O Open file
Ctrl+S Export current figure
Ctrl+C Copy current figure
Ctrl+Q Quit
F5 / Ctrl+R Reload current file
Ctrl+Tab Switch to next enabled tab
Ctrl+Shift+Tab Switch to previous enabled tab

Linux desktop integration

You can register npyquick as an "Open With" application for .npy and .npz files on Linux desktops that follow the freedesktop.org desktop entry and MIME standards. This includes common desktop environments such as GNOME, KDE Plasma, XFCE, Cinnamon, and MATE.

This setup assumes npyquick is already installed in a working environment and can open files from the command line:

npyquick path/to/file.npy
npyquick path/to/file.npz

First, find the absolute path to the executable:

which npyquick

For a conda environment, this may look like:

/opt/miniconda3/envs/npyquick/bin/npyquick

Create ~/.local/share/applications/npyquick.desktop and replace the Exec= path with the path reported by which npyquick:

[Desktop Entry]
Type=Application
Name=npyquick
Comment=Open NumPy array files
Exec=/opt/miniconda3/envs/npyquick/bin/npyquick %f
Icon=utilities-terminal
Terminal=false
Categories=Science;Utility;
MimeType=application/x-npy;application/x-npz;
StartupNotify=true

Register MIME types for .npy and .npz by creating ~/.local/share/mime/packages/npyquick.xml:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-npy">
    <comment>NumPy array file</comment>
    <glob pattern="*.npy" weight="100"/>
  </mime-type>
  <mime-type type="application/x-npz">
    <comment>NumPy compressed archive</comment>
    <sub-class-of type="application/zip"/>
    <glob pattern="*.npz" weight="100"/>
  </mime-type>
</mime-info>

The high glob weight is important for .npz: because an .npz file is a ZIP container internally, some desktops otherwise classify it as application/zip before the extension-specific rule is applied.

Update the desktop and MIME databases, then set npyquick as the default handler:

update-mime-database ~/.local/share/mime
update-desktop-database ~/.local/share/applications
xdg-mime default npyquick.desktop application/x-npy
xdg-mime default npyquick.desktop application/x-npz

Test the association:

xdg-open path/to/file.npy
xdg-open path/to/file.npz

Roadmap

  • >2D array slicer
  • Complex array support: real / imaginary / magnitude / phase

Contributing

Bug reports, feature requests, and suggestions are welcome — please open an issue.

The code in this repository is primarily written by an AI coding agent and reviewed by a human maintainer.

License

Copyright 2026 LiukDiihMieu

This project is licensed under the GNU General Public License v3.0 or later. Project logo and visual assets are included for use with this project. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

npyquick-0.1.0.tar.gz (609.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

npyquick-0.1.0-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

Details for the file npyquick-0.1.0.tar.gz.

File metadata

  • Download URL: npyquick-0.1.0.tar.gz
  • Upload date:
  • Size: 609.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for npyquick-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fc7a4ec37ef79c9a20d5030c57d0fae82049c4b9a7f704fe4341cc55356aab90
MD5 88066e6152918850013fcb754ff5ef70
BLAKE2b-256 f17228caa7d749b0260653b0ba0fae665502017059cacec5052e51dfaa7a5169

See more details on using hashes here.

File details

Details for the file npyquick-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: npyquick-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 48.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for npyquick-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e60bd9a8efc2e1f5f8b4b8b7cd0b73075e552791f62f161aa3bd04beaf4247a4
MD5 727bcd396e382f8a6f751782771ff8e6
BLAKE2b-256 b28235065b9777414b271614631800f140911ccc235958276f139d1fe1352fcc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page