html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/5877#issuecomment-948691519,https://api.github.com/repos/pydata/xarray/issues/5877,948691519,IC_kwDOAMm_X844i-I_,10194086,2021-10-21T14:45:47Z,2021-10-21T14:45:47Z,MEMBER,"AFAIK bottleneck uses a less precise algorithm for sums than numpy (pydata/bottleneck#379). However, I don't know why this yields 0 at the beginning but not at the end. A slightly more minimal example: ```python import bottleneck as bn import numpy as np import pandas as pd data = np.array( [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31, 0.91999996, 8.3, 1.42, 0.03, 1.22, 0.09999999, 0.14, 0.13, 0.0, 0.12, 0.03, 2.53, 0.0, 0.19999999, 0.19999999, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ], dtype=""float32"", ) bn.move_sum(data, window=3) pd.Series(data).rolling(3).mean() np.convolve(data, np.ones(3), 'valid') / 3 ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1030768250 https://github.com/pydata/xarray/issues/5877#issuecomment-947906426,https://api.github.com/repos/pydata/xarray/issues/5877,947906426,IC_kwDOAMm_X844f-d6,8453445,2021-10-20T17:59:13Z,2021-10-20T17:59:13Z,CONTRIBUTOR,"Yup - just followed your suggestion and: 1) conda removed `bottleneck` and it removed xarray and pandas as well 2) conda installed `xarray` which installed `xarray`, `pandas`, and `pytz` and now the `xr.rolling(time=3).sum()` yields: array([ nan, nan, 0. , 0. , 0. , 0. , 0. , 0.31 , 1.23 , 9.530001 , 10.64 , 9.75 , 2.67 , 1.35 , 1.46 , 0.36999997, 0.26999998, 0.25 , 0.14999999, 2.68 , 2.56 , 2.73 , 0.39999998, 0.39999998, 0.19999999, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ], dtype=float32) could you elaborate more on the issue? is this because of some bouncing between precisions across packages? But why do I have zeros at the beginning of the rolling sum and non zeros after having calculated a sum? it is not consistent in the behaviour. Thanks tho! ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1030768250 https://github.com/pydata/xarray/issues/5877#issuecomment-947893467,https://api.github.com/repos/pydata/xarray/issues/5877,947893467,IC_kwDOAMm_X844f7Tb,10194086,2021-10-20T17:41:04Z,2021-10-20T17:41:04Z,MEMBER,Thanks for the report. Without testing anything I suspect that this is due to the use of `float32` data and/ or bottleneck - see also #1346. You can test this by uninstalling bottleneck (there is an option to disable bottleneck but it's not yet released (#5560).,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1030768250 https://github.com/pydata/xarray/issues/5877#issuecomment-947195221,https://api.github.com/repos/pydata/xarray/issues/5877,947195221,IC_kwDOAMm_X844dQ1V,8453445,2021-10-20T00:02:58Z,2021-10-20T00:02:58Z,CONTRIBUTOR,"Adding a few extra observations: ```python ds_ex.rolling(time=3).mean().pr.values df_ex.rolling(window=3).mean().values.T ``` have a similar behaviour, in that once again `xr.rolling()` doesn't have zero where it should, but `pd.rolling` does. But when I switch to other operations, like `var` or `std` the behaviour is the opposite, i.e.: ``` ds_ex.rolling(time=3).std().pr.values ``` array([ nan, nan, 0. , 0. , 0. , 0. , 0. , 0.1461354 , 0.38218665, 3.631293 , 3.367307 , 3.6156974 , 0.61356837, 0.54522127, 0.5188016 , 0.01698606, 0.06376763, 0.05906381, 0.05098677, 1.157881 , 1.1856455 , 1.148419 , 0.09427918, 0.09427918, 0.09427926, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ], dtype=float32) whereas ``` df_ex.rolling(window=3).std().values.T ``` gives array([[ nan, nan, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.78978585e-01, 4.68081166e-01, 4.44740760e+00, 4.12409195e+00, 4.42830679e+00, 7.51465227e-01, 6.67757461e-01, 6.35400157e-01, 2.08166670e-02, 7.81024957e-02, 7.23417792e-02, 6.24499786e-02, 1.41810905e+00, 1.45211339e+00, 1.40652052e+00, 1.15470047e-01, 1.15470047e-01, 1.15470047e-01, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08, 9.60572442e-08]])","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1030768250