Skip to content

Commit ccf578d

Browse files
authored
Use npg sum_of_squares (#135)
Bump to npg >= 0.9.19 Closes #107
1 parent c370b5d commit ccf578d

File tree

9 files changed

+40
-24
lines changed

9 files changed

+40
-24
lines changed

asv_bench/benchmarks/reduce.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from . import parameterized
77

88
N = 1000
9-
funcs = ["sum", "nansum", "mean", "nanmean", "max"]
9+
funcs = ["sum", "nansum", "mean", "nanmean", "max", "var", "nanvar"]
1010
engines = ["flox", "numpy"]
1111

1212

ci/docs.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dependencies:
77
- xarray
88
- numpy>=1.20
99
- numpydoc
10-
- numpy_groupies
10+
- numpy_groupies>=0.9.19
1111
- toolz
1212
- matplotlib-base
1313
- myst-parser

ci/environment.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ dependencies:
1616
- pytest-xdist
1717
- xarray
1818
- pre-commit
19-
- numpy_groupies>=0.9.15
19+
- numpy_groupies>=0.9.19
2020
- pooch
2121
- toolz
2222
- numba

ci/minimal-requirements.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependencies:
99
- pytest-cov
1010
- pytest-xdist
1111
- numpy==1.20
12-
- numpy_groupies==0.9.15
12+
- numpy_groupies==0.9.19
1313
- pandas
1414
- pooch
1515
- toolz

ci/no-dask.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
- xarray
1414
- numpydoc
1515
- pre-commit
16-
- numpy_groupies>=0.9.15
16+
- numpy_groupies>=0.9.19
1717
- pooch
1818
- toolz
1919
- numba

ci/no-xarray.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
- dask-core
1414
- numpydoc
1515
- pre-commit
16-
- numpy_groupies>=0.9.15
16+
- numpy_groupies>=0.9.19
1717
- pooch
1818
- toolz
1919
- numba

flox/aggregate_npg.py

+32-16
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,43 @@ def _get_aggregate(engine):
99

1010

1111
def sum_of_squares(
12-
group_idx, array, engine, *, axis=-1, func="sum", size=None, fill_value=None, dtype=None
12+
group_idx,
13+
array,
14+
engine,
15+
*,
16+
axis=-1,
17+
size=None,
18+
fill_value=None,
19+
dtype=None,
1320
):
1421

1522
return _get_aggregate(engine).aggregate(
1623
group_idx,
17-
array**2,
24+
array,
1825
axis=axis,
19-
func=func,
26+
func="sumofsquares",
27+
size=size,
28+
fill_value=fill_value,
29+
dtype=dtype,
30+
)
31+
32+
33+
def nansum_of_squares(
34+
group_idx,
35+
array,
36+
engine,
37+
*,
38+
axis=-1,
39+
size=None,
40+
fill_value=None,
41+
dtype=None,
42+
):
43+
44+
return _get_aggregate(engine).aggregate(
45+
group_idx,
46+
array,
47+
axis=axis,
48+
func="nansumofsquares",
2049
size=size,
2150
fill_value=fill_value,
2251
dtype=dtype,
@@ -55,19 +84,6 @@ def nanprod(group_idx, array, engine, *, axis=-1, size=None, fill_value=None, dt
5584
)
5685

5786

58-
def nansum_of_squares(group_idx, array, engine, *, axis=-1, size=None, fill_value=None, dtype=None):
59-
return sum_of_squares(
60-
group_idx,
61-
array,
62-
engine=engine,
63-
func="nansum",
64-
size=size,
65-
fill_value=fill_value,
66-
axis=axis,
67-
dtype=dtype,
68-
)
69-
70-
7187
def _len(group_idx, array, engine, *, func, axis=-1, size=None, fill_value=None, dtype=None):
7288
result = _get_aggregate(engine).aggregate(
7389
group_idx,

flox/aggregations.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def generic_aggregate(
3939
method_ = getattr(aggregate_npg, func)
4040
method = partial(method_, engine=engine)
4141
except AttributeError:
42-
aggregate = npg.aggregate_np if engine == "numpy" else npg.aggregate_nb
42+
aggregate = aggregate_npg._get_aggregate(engine).aggregate
4343
method = partial(aggregate, func=func)
4444
else:
4545
raise ValueError(

setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ python_requires = >=3.8
2828
install_requires =
2929
pandas
3030
numpy >= '1.20'
31-
numpy_groupies >= '0.9.15'
31+
numpy_groupies >= '0.9.19'
3232
toolz
3333

3434
[options.extras_require]

0 commit comments

Comments
 (0)