🏈指点迷津 | Brief🍪语言内容分比
🍇Python距离矩阵
在数学、计算机科学,尤其是图论中,距离矩阵是一个方阵(二维数组),其中包含一组元素之间成对的距离。根据所涉及的应用,用于定义此矩阵的距离可能是也可能不是度量。如果有 N 个元素,则此矩阵的大小将为 N×N。在图论应用中,元素通常被称为点、节点或顶点。
我们计算两个矩阵 x 和 y 的距离矩阵。两个矩阵的维度相同 (3, 2)。因此距离矩阵的维度为 (3,3)。使用 p=2,距离计算为闵可夫斯基 2 范数(或欧几里得距离)。
import numpy as np
from scipy.spatial import distance_matrix
x = np.array([[1,2],[2,1],[2,2]])
y = np.array([[5,0],[1,2],[2,0]])
print("matrix x:\n", x)
print("matrix y:\n", y)
dist_mat = distance_matrix(x, y, p=2)
print("Distance Matrix:\n", dist_mat)
matrix x:
[[1 2]
[2 1]
[2 2]]
matrix y:
[[5 0]
[1 2]
[2 0]]
Distance Matrix:
[[4.47213595 2.23606798]
[3.16227766 1.41421356 1.]
[3.60555128 1. 2. ]]
我们计算两个矩阵 x 和 y 的距离矩阵。两个矩阵的维度不同。矩阵 x 的维度为 (3,2),矩阵 y 的维度为 (5,2)。因此距离矩阵的维度为 (3,5)。
import numpy as np
from scipy.spatial import distance_matrix
x = np.array([[1,2],[2,1],[2,2]])
y = np.array([[0,0],[0,0],[1,1],[1,1],[1,2]])
print("matrix x:\n", x)
print("matrix y:\n", y)
dist_mat = distance_matrix(x, y, p=2)
print("Distance Matrix:\n", dist_mat)
我们使用单个矩阵(即 x)计算距离矩阵。矩阵 x 的维度为 (3,2)。相同的矩阵 x 作为参数 y 给出。距离矩阵的维度为 (3,3)。
import numpy as np
from scipy.spatial import distance_matrix
x = np.array([[1,2],[2,1],[2,2]])
print("matrix x:\n", x)
dist_mat = distance_matrix(x, x, p=2)
print("Distance Matrix:\n", dist_mat)
我们计算两个矩阵 x 和 y 的距离矩阵。两个矩阵的维度不同。矩阵 x 的维度为 (3,2),矩阵 y 的维度为 (5,2)。因此距离矩阵的维度为 (3,5)。使用 p=1,距离计算为闵可夫斯基1 范数(或曼哈顿距离)。
import numpy as np
from scipy.spatial import distance_matrix
x = np.array([[1,2],[2,1],[2,2]])
y = np.array([[5,0],[1,2],[2,0]])
print("matrix x:\n", x)
print("matrix y:\n", y)
dist_mat = distance_matrix(x, y, p=1)
print("Distance Matrix:\n", dist_mat)
我们计算两个矩阵 x 和 y 的距离矩阵。两个矩阵的维度均为 (2, 5)。因此距离矩阵的维度为 (3,5)。使用 p=2,距离计算为闵可夫斯基 2 范数(或欧几里得距离)。
import numpy as np
from scipy.spatial import distance_matrix
x = np.array([[1,2,3,4,5],[2,1,0,3,4]])
y = np.array([[0,0,0,0,1],[1,1,1,1,2]])
print("matrix x:\n", x)
print("matrix y:\n", y)
dist_mat = distance_matrix(x, y, p=2)
print("Distance Matrix:\n", dist_mat)