@@ -237,7 +237,7 @@ cpdef object dpnp_norm(object input, ord=None, axis=None):
237
237
elif ord == - numpy.inf:
238
238
return dpnp.array([dpnp.abs(input ).min(axis = axis)])
239
239
elif ord == 0 :
240
- return dpnp.array([( input != 0 ).astype( input .dtype).sum( axis = axis)])
240
+ return dpnp.array([dpnp.sum(dpnp.astype(( input != 0 ), input .dtype), axis = axis)])
241
241
elif ord is None or ord == 2 :
242
242
s = input * input
243
243
return dpnp.sqrt(dpnp.sum(s, axis = axis))
@@ -248,14 +248,14 @@ cpdef object dpnp_norm(object input, ord=None, axis=None):
248
248
absx_size = absx.size
249
249
absx_power = utils_py.create_output_descriptor_py((absx_size,), absx.dtype, None ).get_pyobj()
250
250
for i in range (absx_size):
251
- absx_elem = absx.item(i)
251
+ absx_elem = absx[numpy.unravel_index(i, absx.shape)]
252
252
absx_power[i] = absx_elem ** ord
253
253
absx_ = dpnp.reshape(absx_power, absx.shape)
254
254
ret = dpnp.sum(absx_, axis = axis)
255
255
ret_size = ret.size
256
256
ret_power = utils_py.create_output_descriptor_py((ret_size,), None , None ).get_pyobj()
257
257
for i in range (ret_size):
258
- ret_elem = ret.item(i)
258
+ ret_elem = ret[numpy.unravel_index(i, ret.shape)]
259
259
ret_power[i] = ret_elem ** (1 / ord )
260
260
ret_ = dpnp.reshape(ret_power, ret.shape)
261
261
return ret_
0 commit comments