Skip to content

Conversation

@jsignell
Copy link
Contributor

Demo

# /// script
# requires-python = ">=3.11"
# dependencies = [
#   "xarray[complete]@git+https://github.com/jsignell/xarray.git@uncertainties",
#   "uncertainties",
#   "pint",
# ]
# ///
#

from uncertainties import ufloat
import numpy as np
import pint
import xarray as xr

# create some uncertainties values
l1 = [ufloat(1, 0.1), ufloat(2, 0.2), ufloat(3, 0.3), ufloat(4, 0.4), ufloat(5, 0.5), ufloat(6, 0.6), ufloat(7, 0.7)]
l2 = [ufloat(10, 1.), ufloat(20, 2.), ufloat(30, 3.), ufloat(40, 4.), ufloat(50, 5.), ufloat(60, 6.), ufloat(70, 7.)]

# assemble a numpy array, we're at numpy(uncertainties)
numpy_array = np.array([l1, l2])

# attach a unit to it, we're at pint(numpy(uncertainties))
ureg = pint.UnitRegistry()
with_unit = numpy_array * ureg.second

# now assemble a DataArray, we're at xarray(pint(numpy(uncertainties)))
data_array = xr.DataArray(with_unit, dims=("a", "b"))

print(data_array.mean(dim="b"))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Taking a mean along some dimension with units fails.

1 participant