# tf.sparse.map_values

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/sparse_ops.py#L2921-L2985) |

Applies `op` to the `.values` tensor of one or more `SparseTensor`s.

    tf.sparse.map_values(
        op, *args, **kwargs
    )

Replaces any `SparseTensor` in `args` or `kwargs` with its `values`
tensor (which contains the non-default values for the SparseTensor),
and then calls `op`. Returns a `SparseTensor` that is constructed
from the input `SparseTensor`s' `indices`, `dense_shape`, and the
value returned by the `op`.

If the input arguments contain multiple `SparseTensor`s, then they must have
equal `indices` and dense shapes.

#### Examples:

    s = tf.sparse.from_dense([[1, 2, 0],
                              [0, 4, 0],
                              [1, 0, 0]])
    tf.sparse.to_dense(tf.sparse.map_values(tf.ones_like, s)).numpy()
    array([[1, 1, 0],
           [0, 1, 0],
           [1, 0, 0]], dtype=int32)

    tf.sparse.to_dense(tf.sparse.map_values(tf.multiply, s, s)).numpy()
    array([[ 1,  4,  0],
           [ 0, 16,  0],
           [ 1,  0,  0]], dtype=int32)

    tf.sparse.to_dense(tf.sparse.map_values(tf.add, s, 5)).numpy()
    array([[6, 7, 0],
           [0, 9, 0],
           [6, 0, 0]], dtype=int32)

> [!NOTE]
> **Note:** even though `tf.add(0, 5) != 0`, implicit zeros will remain unchanged. However, if the sparse tensor contains any explicit zeros, these will be affected by the mapping!

<br />

<br />

<br />

| ## Args ||
|---|---|
| `op` | The operation that should be applied to the SparseTensor `values`. `op` is typically an element-wise operation (such as math_ops.add), but any operation that preserves the shape can be used. |
| `*args` | Arguments for `op`. |
| `**kwargs` | Keyword arguments for `op`. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A `SparseTensor` whose `indices` and `dense_shape` matches the `indices` and `dense_shape` of all input `SparseTensor`s. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | If args contains no `SparseTensor`, or if the `indices` or `dense_shape`s of the input `SparseTensor`s are not equal. |

<br />