data-structures plotting masking binning slicing scipp-neutron

scipp - Multi-dimensional data arrays with labeled dimensions

scipp is heavily inspired by xarray. It enriches raw NumPy-like multi-dimensional arrays of data by adding named dimensions and associated coordinates. Multiple arrays can be combined into datasets. While for many applications xarray is certainly more suitable (and definitely much more matured) than scipp, there is a number of features missing in other situations. If your use case requires one or several of the items on the following list, using scipp may be worth considering:

  • Physical units are stored with each data or coord array and are handled in arithmetic operations.

  • Propagation of uncertainties.

  • Support for histograms, i.e., bin-edge axes, which are by 1 longer than the data extent.

  • Support for scattered data and non-destructive binning. This includes first and foremost event data, a particular form of sparse data with arrays of random-length lists, with very small list entries.

  • Support for masks stored with data.

  • Written in C++ for better performance (for certain applications), in combination with Python bindings.

Generic functionality of scipp is provided in the scipp Python package. In addition, more specific functionality is made available in other packages. Currently the only example for this is scippneutron for handling data from neutron-scattering experiments.


  • Scipp is moving from GPLv3 to the more permissive BSD-3 license which fits better into the Python eco system.

  • Looking for scipp.neutron? This submodule has been moved into its own package, scippneutron.

  • [March 2021] scipp-0.6 has been released. The What’s new notebook provides an overview of the highlights and major changes.

  • [Janunary 2021] scipp-0.5 has been released. The What’s new notebook provides an overview of the highlights and major changes.

Where can I get help?

For questions not answered in the documentation this page provides a forum with discussions on problems already met/solved in the community.

New question can be asked by opening a new QuestionLabel issue.


User Guide