All*_*son 1 python distance matrix python-2.7 python-3.x
嗨,我想构建一个尺寸为10 x 10的距离矩阵,并生成了一个包含45个实数的值列表,以填充10 x 10矩阵。距离矩阵也称为对称矩阵,它是矩阵另一面的镜像。我目前的情况是我有45个值,我想知道如何创建距离矩阵,对角线部分填充0,并创建镜像矩阵以形成完整的距离矩阵。
例如,
1,2,4,3,5,6
输出:
0,1,2,4
1,0,3,5
2,3,0,6
4,5,6,0
感谢。
如果您使用的是NumPy,这将是的完美选择numpy.triu_indices,它会返回一对索引矩阵,适合选择矩阵的上三角。第一个参数是矩阵的边长,第二个参数是从哪个对角线开始:
In [1]: import numpy
In [2]: x = numpy.zeros([4, 4]) # 4x4 array of zeros
In [3]: x[numpy.triu_indices(4, 1)] = [1, 2, 4, 3, 5, 6]
In [4]: x
Out[4]:
array([[ 0., 1., 2., 4.],
[ 0., 0., 3., 5.],
[ 0., 0., 0., 6.],
[ 0., 0., 0., 0.]])
In [5]: x += x.T
In [6]: x
Out[6]:
array([[ 0., 1., 2., 4.],
[ 1., 0., 3., 5.],
[ 2., 3., 0., 6.],
[ 4., 5., 6., 0.]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4480 次 |
| 最近记录: |