@@ -497,8 +497,9 @@ def _group_add(complexfloating_t[:, :] out,
497
497
raise ValueError (" len(index) != len(labels)" )
498
498
499
499
nobs = np.zeros((< object > out).shape, dtype = np.int64)
500
- sumx = np.zeros_like(out)
501
- compensation = np.zeros_like(out)
500
+ # the below is equivalent to `np.zeros_like(out)` but faster
501
+ sumx = np.zeros((< object > out).shape, dtype = (< object > out).base.dtype)
502
+ compensation = np.zeros((< object > out).shape, dtype = (< object > out).base.dtype)
502
503
503
504
N, K = (< object > values).shape
504
505
@@ -555,7 +556,7 @@ def _group_prod(floating[:, :] out,
555
556
raise ValueError (" len(index) != len(labels)" )
556
557
557
558
nobs = np.zeros((< object > out).shape, dtype = np.int64)
558
- prodx = np.ones_like( out)
559
+ prodx = np.ones(( < object > out).shape, dtype = ( < object > out).base.dtype )
559
560
560
561
N, K = (< object > values).shape
561
562
@@ -608,7 +609,7 @@ def _group_var(floating[:, :] out,
608
609
raise ValueError (" len(index) != len(labels)" )
609
610
610
611
nobs = np.zeros((< object > out).shape, dtype = np.int64)
611
- mean = np.zeros_like( out)
612
+ mean = np.zeros(( < object > out).shape, dtype = ( < object > out).base.dtype )
612
613
613
614
N, K = (< object > values).shape
614
615
@@ -665,8 +666,9 @@ def _group_mean(floating[:, :] out,
665
666
raise ValueError (" len(index) != len(labels)" )
666
667
667
668
nobs = np.zeros((< object > out).shape, dtype = np.int64)
668
- sumx = np.zeros_like(out)
669
- compensation = np.zeros_like(out)
669
+ # the below is equivalent to `np.zeros_like(out)` but faster
670
+ sumx = np.zeros((< object > out).shape, dtype = (< object > out).base.dtype)
671
+ compensation = np.zeros((< object > out).shape, dtype = (< object > out).base.dtype)
670
672
671
673
N, K = (< object > values).shape
672
674
0 commit comments