id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 2189919172,I_kwDOAMm_X86Ch4PE,8848,numpy where argument crashes the program,35605235,closed,0,,,3,2024-03-16T11:17:22Z,2024-04-11T06:53:28Z,2024-04-11T06:53:28Z,NONE,,,,"### What happened? I was trying to divide two `DataArray` objects, but I needed to check for zero values. I though to do something like: ```python res = np.divide(a, b, out=np.zeros_like(a, dtype=float), where=b != 0) ``` to get zero whenever `b == 0`, but running this resulted in a crush of infinite recursion. Part of the traceback is shown below. The full traceback is way too long to post here. ### What did you expect to happen? The division would succeed and I'd get a `DataArray` with the same dimensions as `a` and `b` with the correct results and zero whenever `b == 0`. ### Minimal Complete Verifiable Example ```Python import numpy as np import xarray as xr a = xr.DataArray([-1, 0, 1, 2, 3], dims=""x"") b = xr.DataArray([0, 0, 0, 2, 2], dims=""x"") print(np.divide(a, b, out=np.zeros_like(a, dtype=float), where=b != 0)) ``` ### MVCE confirmation - [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray. - [X] Complete example — the example is self-contained, including all data and the text of any traceback. - [X] Verifiable example — the example copy & pastes into an IPython prompt or [Binder notebook](https://mybinder.org/v2/gh/pydata/xarray/main?urlpath=lab/tree/doc/examples/blank_template.ipynb), returning the result. - [X] New issue — a search of GitHub Issues suggests this is not a duplicate. - [X] Recent environment — the issue occurs with the latest version of xarray and its dependencies. ### Relevant log output ```Python File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 898, in apply_array_ufunc return func(*args) ^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\arithmetic.py"", line 83, in __array_ufunc__ return apply_ufunc( ^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 1283, in apply_ufunc return apply_array_ufunc(func, *args, dask=dask) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 880, in apply_array_ufunc if any(is_chunked_array(arg) for arg in args): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\core\computation.py"", line 880, in if any(is_chunked_array(arg) for arg in args): ^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\namedarray\pycompat.py"", line 92, in is_chunked_array return is_duck_dask_array(x) or (is_duck_array(x) and hasattr(x, ""chunks"")) ^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\namedarray\utils.py"", line 94, in is_duck_dask_array return is_duck_array(x) and is_dask_collection(x) ^^^^^^^^^^^^^^^^^^^^^ File ""D:\Portable_Programs\.pyenv\pyenv-win\versions\3.11.5\Lib\site-packages\xarray\namedarray\utils.py"", line 68, in is_dask_collection if module_available(""dask""): ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object ``` ### Anything else we need to know? _No response_ ### Environment
INSTALLED VERSIONS ------------------ commit: None python: 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)] python-bits: 64 OS: Windows OS-release: 10 machine: AMD64 processor: Intel64 Family 6 Model 158 Stepping 10, GenuineIntel byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('English_United States', '1252') libhdf5: 1.14.0 libnetcdf: 4.9.2 xarray: 2024.2.0 pandas: 2.2.1 numpy: 1.26.4 scipy: 1.12.0 netCDF4: 1.6.5 pydap: None h5netcdf: 1.3.0 h5py: 3.10.0 Nio: None zarr: 2.17.1 cftime: 1.6.3 nc_time_axis: 1.4.1 iris: None bottleneck: 1.3.8 dask: 2024.3.1 distributed: 2024.3.1 matplotlib: 3.8.2 cartopy: None seaborn: 0.13.2 numbagg: 0.8.1 fsspec: 2024.2.0 cupy: None pint: 0.23 sparse: None flox: 0.9.3 numpy_groupies: 0.10.2 setuptools: 69.1.1 pip: 24.0 conda: None pytest: 8.0.2 mypy: 1.8.0 IPython: 8.22.1 sphinx: 7.2.6
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8848/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue