---
title: Manhattan Distance
description: Calculate pairwise manhattan distance.
canonical: 'https://lightning.ai/docs/torchmetrics/stable/pairwise/manhattan_distance'
---
# Manhattan Distance {#manhattan-distance}

## Functional Interface {#functional-interface}

### `torchmetrics.functional.pairwise_manhattan_distance(x, y=None, reduction=None, zero_diagonal=None)` {#torchmetrics.functional.pairwise_manhattan_distance}

[\[source\]](https://github.com/Lightning-AI/torchmetrics/blob/v1.9.0/src/torchmetrics/functional/pairwise/manhattan.py#L41-L83)

Calculate pairwise manhattan distance.

```math
d_{man}(x,y) = ||x-y||_1 = \sum_{d=1}^D |x_d - y_d|
```

If both $`x`$ and $`y`$ are passed in, the calculation will be performed pairwise between the rows of $`x`$ and $`y`$. If only $`x`$ is passed in, the calculation will be performed between the rows of $`x`$.

Parameters:

*   **x** ([`Tensor`](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch v2.15)")) – Tensor with shape `[N, d]`
    
*   **y** ([`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional "(in Python v3.15)")\[[`Tensor`](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch v2.15)")\]) – Tensor with shape `[M, d]`, optional
    
*   **reduction** ([`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional "(in Python v3.15)")\[[`Literal`](https://docs.python.org/3/library/typing.html#typing.Literal "(in Python v3.15)")\[`'mean'`, `'sum'`, `'none'`, `None`\]\]) – reduction to apply along the last dimension. Choose between ‘mean’, ‘sum’ (applied along column dimension) or ‘none’, None for no reduction
    
*   **zero\_diagonal** ([`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional "(in Python v3.15)")\[[`bool`](https://docs.python.org/3/builtins/functions.html#bool "(in Python v3.15)")\]) – if the diagonal of the distance matrix should be set to 0. If only x is given this defaults to True else if y is also given it defaults to False
    

Return type:

[`Tensor`](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch v2.15)")

Returns:

A `[N,N]` matrix of distances if only `x` is given, else a `[N,M]` matrix

Example

```python
>>> import torch
>>> from torchmetrics.functional.pairwise import pairwise_manhattan_distance
>>> x = torch.tensor([[2, 3], [3, 5], [5, 8]], dtype=torch.float32)
>>> y = torch.tensor([[1, 0], [2, 1]], dtype=torch.float32)
>>> pairwise_manhattan_distance(x, y)
tensor([[ 4.,  2.],
        [ 7.,  5.],
        [12., 10.]])
>>> pairwise_manhattan_distance(x)
tensor([[0., 3., 8.],
        [3., 0., 5.],
        [8., 5., 0.]])
```

---

**Navigation**

- Parent: [Pairwise](/docs/torchmetrics/1.9.0/pairwise.md)
