La Distancia Manhattan (Manhattan Distance), también conocida como Distancia Taxicab, Distancia City Block o Distancia L1, es una de las métricas de distancia más utilizadas en Ciencia de Datos y Machine Learning para medir la diferencia entre dos puntos en un espacio multidimensional.
A diferencia de la Distancia Euclidiana, que calcula la distancia en línea recta entre dos puntos, la Distancia Manhattan mide la distancia recorriendo únicamente desplazamientos horizontales y verticales, de forma similar al recorrido que realizaría un taxi por las calles organizadas en cuadrícula de la isla de Manhattan, de donde proviene su nombre.
Esta métrica resulta especialmente útil cuando se trabaja con variables numéricas, espacios de alta dimensionalidad o algoritmos basados en vecinos, como K-Nearest Neighbors (KNN), además de tener aplicaciones en sistemas de recomendación, clustering, detección de anomalías y optimización.
En este artículo se estudian sus fundamentos, funcionamiento, ventajas, limitaciones e implementación práctica en Python.
¿Qué es la Distancia Manhattan?
La Distancia Manhattan es una medida matemática que calcula la distancia entre dos vectores sumando las diferencias absolutas de cada una de sus dimensiones.
Su fórmula es:
$$
D(A,B)=\sum_{i=1}^{n}|A_i-B_i|
$$
donde:
- \(A_i\) representa el valor de la característica (i) del primer vector.
- \(B_i\) representa el valor correspondiente del segundo vector.
- \(n\) es el número total de características.
El resultado siempre es un valor igual o mayor que cero. Cuanto menor sea la distancia, mayor será la similitud entre ambos objetos.

¿Cómo funciona?
La Distancia Manhattan calcula la diferencia absoluta en cada dimensión y posteriormente suma todas ellas.
El procedimiento general consiste en:
- Comparar cada característica de ambos vectores.
- Calcular la diferencia absoluta en cada dimensión.
- Sumar todas las diferencias.
- Obtener una distancia total.
A diferencia de otras métricas, no utiliza cuadrados ni raíces cuadradas, lo que simplifica considerablemente su cálculo.
Interpretación de los valores
La Distancia Manhattan toma valores comprendidos entre:
$$
0 \le D < \infty
$$
Su interpretación es sencilla.
| Valor | Interpretación |
|---|---|
| 0 | Los vectores son idénticos |
| Valor pequeño | Alta similitud |
| Valor elevado | Baja similitud |
Al tratarse de una distancia, un valor menor indica una mayor semejanza.
Ejemplo conceptual
Supongamos dos usuarios representados mediante dos características.
Usuario A:
- Compras: 8
- Visitas: 12
Usuario B:
- Compras: 5
- Visitas: 15
La distancia sería:
$$D = |8-5|+|12-15| = 6$$
La distancia Manhattan entre ambos usuarios es igual a 6.
Ejemplo gráfico
Supongamos dos puntos.
A = (2,3)
B = (6,7)
La distancia Manhattan será:
$$D =|6-2|+|7-3| = 8$$
Mientras que la distancia euclidiana recorrería una línea recta, la Distancia Manhattan representa el recorrido siguiendo únicamente desplazamientos horizontales y verticales.
¿Por qué es importante en los sistemas de recomendación?
En algunos sistemas de recomendación los usuarios o productos se representan mediante vectores de características numéricas. La Distancia Manhattan permite medir cuánto difieren dichos vectores considerando cada característica por separado.
Resulta especialmente útil cuando:
- Las diferencias individuales entre variables tienen significado.
- Se trabaja con datos tabulares.
- Las variables representan cantidades acumuladas.
- Se utilizan algoritmos KNN para buscar vecinos similares.
En estos escenarios, una menor distancia implica una mayor similitud entre usuarios o elementos.
¿Cuándo utilizar la Distancia Manhattan?
Es recomendable utilizarla cuando:
- Se trabaja con variables numéricas.
- Se utilizan algoritmos KNN.
- Existen valores atípicos moderados.
- Se desea reducir el efecto de grandes diferencias individuales.
- Se analizan datos tabulares.
- Las variables tienen la misma escala o han sido normalizadas.
- Se desarrollan sistemas de recomendación basados en vecinos.
No suele ser la mejor opción para comparar texto o documentos.
Ventajas y desventajas
| Ventajas | Desventajas |
|---|---|
| Fácil implementación | Depende de la escala de las variables |
| Menor sensibilidad a valores extremos que Euclidiana | Requiere normalización cuando las variables tienen unidades diferentes |
| Muy utilizada en KNN | No captura relaciones lineales |
| Adecuada para espacios de alta dimensión | Puede perder capacidad discriminativa con muchas variables irrelevantes |
| Bajo coste computacional | No considera correlaciones entre variables |
Limitaciones
Aunque es una métrica muy utilizada, presenta algunas limitaciones.
- Es sensible a la escala de las variables.
- No tiene en cuenta la correlación entre características.
- No resulta adecuada para texto o datos categóricos sin transformación previa.
- En espacios muy dispersos puede perder capacidad discriminativa.
- No captura relaciones complejas entre variables.
Por ello, suele combinarse con procesos de normalización o selección de características.
Distancia Manhattan vs otras medidas
| Medida | Qué compara | Sensible a la magnitud | Tipo de datos recomendado |
|---|---|---|---|
| Distancia Manhattan | Diferencias absolutas | Sí | Variables numéricas |
| Distancia Euclidiana | Distancia geométrica | Sí | Variables numéricas |
| Similitud del Coseno | Dirección del vector | No | Texto, TF-IDF, Embeddings |
| Similitud de Pearson | Relación lineal | No | Valoraciones |
| Índice de Jaccard | Elementos compartidos | No | Datos binarios |
La Distancia Manhattan suele preferirse cuando interesa medir diferencias individuales entre características y se desea reducir el impacto de grandes desviaciones.
Manhattan vs Distancia Euclidiana
Aunque ambas son métricas de distancia, presentan diferencias importantes.
| Característica | Distancia Manhattan | Distancia Euclidiana |
|---|---|---|
| Tipo de norma | L1 | L2 |
| Cálculo | Suma de diferencias absolutas | Raíz cuadrada de la suma de cuadrados |
| Sensibilidad a valores extremos | Menor | Mayor |
| Interpretación geométrica | Recorrido por cuadrícula | Línea recta |
| Complejidad computacional | Menor | Mayor |
La elección entre ambas depende del problema y de la naturaleza de los datos.
Aplicaciones en Data Science y Machine Learning
La Distancia Manhattan aparece en numerosos ámbitos de la Ciencia de Datos.
Entre sus aplicaciones más habituales destacan:
- Sistemas de recomendación.
- K-Nearest Neighbors (KNN).
- Clustering.
- Detección de anomalías.
- Optimización matemática.
- Visión por computador.
- Reconocimiento de patrones.
- Minería de datos.
- Bioinformática.
- Sistemas de búsqueda.
Es especialmente útil cuando los datos pueden representarse mediante variables numéricas independientes.
Implementación en Python
Calcular la Distancia Manhattan con SciPy
from scipy.spatial.distance import cityblock
A = [2, 3]
B = [6, 7]
distancia = cityblock(A, B)
print(distancia)
Resultado:
8Utilizando Scikit-Learn
from sklearn.metrics.pairwise import manhattan_distances
import numpy as np
A = np.array([[2, 3]])
B = np.array([[6, 7]])
distancia = manhattan_distances(A, B)
print(distancia)
Resultado:
[[8.]]Calcular una matriz de distancias
from sklearn.metrics.pairwise import manhattan_distances
import numpy as np
X = np.array([
[2, 3],
[6, 7],
[5, 2]
])
matriz = manhattan_distances(X)
print(matriz)
Resultado aproximado:
[[0. 8. 4.]
[8. 0. 6.]
[4. 6. 0.]]La matriz contiene la distancia entre todos los pares de observaciones.
Utilizar la Distancia Manhattan en KNN
from sklearn.neighbors import KNeighborsClassifier
modelo = KNeighborsClassifier(
n_neighbors=5,
metric="manhattan"
)
modelo.fit(X_train, y_train)
Este enfoque resulta habitual cuando se desea utilizar la norma L1 en lugar de la distancia euclidiana.
Complejidad computacional
Para dos vectores con n características:
- El cálculo de la Distancia Manhattan tiene una complejidad temporal de O(n).
Cuando se comparan todos los pares de una matriz con m observaciones:
- La complejidad aproximada es O(m² · n).
Su cálculo es ligeramente más eficiente que el de la Distancia Euclidiana al no requerir operaciones de potenciación ni raíces cuadradas.
Buenas prácticas
Para utilizar correctamente la Distancia Manhattan se recomienda:
- Normalizar las variables cuando tengan escalas diferentes.
- Eliminar o tratar valores atípicos antes del cálculo cuando sea necesario.
- Utilizarla únicamente con variables numéricas.
- Comparar su rendimiento frente a otras métricas como Euclidiana o Coseno.
- Reducir la dimensionalidad cuando existan muchas variables irrelevantes.
- Validar experimentalmente la métrica más adecuada para el problema.
- Documentar la elección de la métrica dentro del flujo de trabajo.
Conclusión
La Distancia Manhattan es una de las métricas de distancia más utilizadas en Ciencia de Datos y Machine Learning debido a su sencillez, eficiencia e interpretación intuitiva. Al calcular la suma de las diferencias absolutas entre las características de dos observaciones, proporciona una medida robusta para comparar datos numéricos y resulta especialmente útil en algoritmos como KNN, sistemas de recomendación basados en vecinos y técnicas de clustering.
Aunque comparte muchas aplicaciones con la Distancia Euclidiana, su menor sensibilidad a determinadas variaciones y su bajo coste computacional la convierten en una alternativa muy interesante en problemas donde las diferencias individuales entre variables son más relevantes que la distancia geométrica directa. Como ocurre con cualquier medida de distancia, la elección de utilizar Manhattan debe basarse en la naturaleza de los datos y validarse empíricamente para garantizar el mejor rendimiento del modelo.