xyzpy
is python library for efficiently generating, manipulating and plotting data with a lot of dimensions, of the type that often occurs in numerical simulations. It stands wholly atop the labelled N-dimensional array library xarray
. The project's documentation is hosted on readthedocs.
The aim is to take the pain and errors out of generating and exploring data with a high number of possible parameters. This means:
- you don't have to write super nested for loops
- you don't have to remember which arrays/dimensions belong to which variables/parameters
- you don't have to parallelize over or distribute runs yourself
- you don't have to worry about loading, saving and merging disjoint data
- you don't have to guess when a set of runs is going to finish
- you don't have to write batch submission scripts or leave the notebook to use SGE, PBS or SLURM
As well as the ability to automatically parallelize over runs, xyzpy
provides the Crop
object that allows runs and results to be written to disk,
these can then be run by any process with access to the files - e.g. a batch system
such as SGE, PBS or SLURM - or just serve as a convenient persistent progress mechanism.
Once your data has been aggregated into a xarray.Dataset
or pandas.DataFrame
there exists many powerful visualization tools such as
seaborn
, altair
and
holoviews
/ hvplot
.
To these xyzpy
adds also a simple 'oneliner' interface for interactively plotting the data
using bokeh
, or for static, publication ready figures
using matplotlib
, whilst being able to see the dependence on
up to 4 dimensions at once.
Please see the docs for more information.