@@ -170,9 +170,34 @@ def time_count_nonzero_multi_axis(self, numaxes, size, dtype):
170
170
self .x .ndim - 1 , self .x .ndim - 2 ))
171
171
172
172
173
+ class Nonzero (Benchmark ):
174
+ params = [
175
+ [bool , np .uint8 , np .uint64 , np .int64 , np .float32 , np .float64 ],
176
+ [(1_000_000 ,), (1000 , 1000 ), (100 , ), (2 , )]
177
+ ]
178
+ param_names = ["dtype" , "shape" ]
179
+
180
+ def setup (self , dtype , size ):
181
+ self .x = np .random .randint (0 , 3 , size = size ).astype (dtype )
182
+ self .x_sparse = np .zeros (size ).astype (dtype )
183
+ self .x_sparse [1 ] = 1
184
+ self .x_sparse [- 1 ] = 1
185
+ self .x_dense = np .ones (size ).astype (dtype )
186
+
187
+ def time_nonzero (self , dtype , size ):
188
+ np .nonzero (self .x )
189
+
190
+ def time_nonzero_sparse (self , dtype , size ):
191
+ np .nonzero (self .x_sparse )
192
+
193
+ def time_nonzero_dense (self , dtype , size ):
194
+ np .nonzero (self .x_dense )
195
+
196
+
173
197
class PackBits (Benchmark ):
174
198
param_names = ['dtype' ]
175
199
params = [[bool , np .uintp ]]
200
+
176
201
def setup (self , dtype ):
177
202
self .d = np .ones (10000 , dtype = dtype )
178
203
self .d2 = np .ones ((200 , 1000 ), dtype = dtype )
0 commit comments