pydata / xarray

N-D labeled arrays and datasets in Python
https://xarray.dev
Apache License 2.0
3.63k stars 1.09k forks source link

running numpy functions on xarray objects #3917

Open keewis opened 4 years ago

keewis commented 4 years ago

In the pint integration tests I tried to also test calling numpy functions on xarray objects (we provide methods for all of them).

Some of these functions, like numpy.median, numpy.searchsorted and numpy.clip, depend on __array_function__ (i.e. not __array_ufunc__) to dispatch. However, neither Dataset nor DataArray (nor Variable, I think?) define these protocols (see #3643).

Should we define __array_function__ on xarray objects?

shoyer commented 4 years ago

I think this is probably a good idea, assuming we figure out the type casting hierarchy challenge. Right now people often check for the existence of __array_function__ to indicate NumPy duck arrays, which clearly isn't quite right.