Skip to content

Commit b904b69

Browse files
fix the putmask function (#974)
1 parent e8f42c8 commit b904b69

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

dpnp/dpnp_algo/dpnp_algo_indexing.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -295,11 +295,11 @@ cpdef dpnp_put_along_axis(dpnp_descriptor arr, dpnp_descriptor indices, dpnp_des
295295
func(arr.get_data(), indices.get_data(), values.get_data(), axis, < size_t * > arr_shape.data(), arr.ndim, indices.size, values.size)
296296

297297

298-
cpdef dpnp_putmask(object arr, object mask, object values):
298+
cpdef dpnp_putmask(utils.dpnp_descriptor arr, utils.dpnp_descriptor mask, utils.dpnp_descriptor values):
299299
cdef int values_size = values.size
300300
for i in range(arr.size):
301-
if mask[i]:
302-
arr[i] = values[i % values_size]
301+
if mask.get_pyobj()[numpy.unravel_index(i, mask.shape)]:
302+
arr.get_pyobj()[numpy.unravel_index(i, arr.shape)] = values.get_pyobj()[numpy.unravel_index(i % values_size, values.shape)]
303303

304304

305305
cpdef utils.dpnp_descriptor dpnp_select(list condlist, list choicelist, default):

dpnp/dpnp_iface_indexing.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -419,13 +419,13 @@ def putmask(x1, mask, values):
419419
Input arrays ``arr``, ``mask`` and ``values`` are supported as :obj:`dpnp.ndarray`.
420420
"""
421421

422-
x1_desc = dpnp.get_dpnp_descriptor(x1)
422+
x1_desc = dpnp.get_dpnp_descriptor(x1, copy_when_strides=False)
423423
mask_desc = dpnp.get_dpnp_descriptor(mask)
424424
values_desc = dpnp.get_dpnp_descriptor(values)
425425
if x1_desc and mask_desc and values_desc:
426-
return dpnp_putmask(x1, mask, values)
426+
return dpnp_putmask(x1_desc, mask_desc, values_desc)
427427

428-
return call_origin(numpy.putmask, x1, mask, values)
428+
return call_origin(numpy.putmask, x1, mask, values, dpnp_inplace=True)
429429

430430

431431
def select(condlist, choicelist, default=0):

0 commit comments

Comments
 (0)