Python:如何从一行值创建一个完整的距离矩阵?

艾里森

嗨,我想建立一个尺寸为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

感谢。

假设您要创建任意大小的距离矩阵:

import math

def distance_matrix(pattern):
    # to get the side length, solve for n where len(pattern) = n*(n + 1)/2 (triangular number formula)
    side_length = (int(math.sqrt(1 + 8 * len(pattern))) - 1) // 2 + 1
    assert (side_length * (side_length - 1)) // 2 == len(pattern), "Pattern length must be a triangular number."

    # create the grid
    grid = [[0] * side_length for i in range(side_length)]

    # fill in the grid
    position = 0
    for i in range(0, side_length - 1):
        for j in range(0, side_length - 1 - i):
            element = pattern[position]; position += 1
            grid[i][i + j + 1] = element # fill in the upper triangle
            grid[i + j + 1][i] = element # fill in the lower triangle

    return grid

def matrix_to_string(matrix): return "\n".join("\t".join(str(x) for x in row) for row in distance_matrix([1, 2, 4, 3, 5, 6]))

if __name__ == "__main__":
    print(matrix_to_string(distance_matrix([1, 2, 4, 3, 5, 6])))

编辑:边长必须为int。否则,您将收到此错误:'float'对象不能解释为整数。解决方法是添加楼层划分运算符\。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:如何从一行值创建一个完整的距离矩阵?

来自分类Dev

根据行名将值从一个矩阵取到另一个矩阵

来自分类Dev

如何通过使用其第一列作为新的第一行从另一个矩阵创建一个新矩阵?

来自分类Dev

如何在 tableau 中创建从一行到另一个仪表板的链接

来自分类Dev

如何创建一行“双胞胎”并仅更新一个值

来自分类Dev

Excel:如何从一个创建多个行

来自分类Dev

如何从一个值的元组中创建一个左值引用的元组

来自分类Dev

检查矩阵的每一行是否在另一个矩阵中[Python]

来自分类Dev

使用jquery将值从一行传递到另一个JSP

来自分类Dev

如何在R中将一个矩阵的每一行与另一个矩阵相乘?

来自分类Dev

如何创建具有特定行值+同一行上的下一个值的数据框?

来自分类Dev

从一行中提取一个单词

来自分类Dev

Python:如何在行和列的值之间创建一个对应矩阵?

来自分类Dev

MySQL-如何从一个表的一行中仅选择两列

来自分类Dev

如何从一行文本中提取一个int?

来自分类Dev

如何从一行中修剪一个单词

来自分类Dev

如何从矩阵中每一行的矢量化和与另一个矩阵获得矩阵

来自分类Dev

如何使用另一个矩阵的非NA值以及在其中找到的行和列创建一个新矩阵?

来自分类Dev

如何从一行SQL创建两行

来自分类Dev

创建一个nxn矩阵python

来自分类Dev

如何跳过矩阵的每一行中的第一个元素?

来自分类Dev

Python从矩阵的每一行中减去第一个元素

来自分类Dev

查找另一个矩阵中矩阵中每一行的最接近值

来自分类Dev

如何为 sas 中的每一行分组 50 列并为其值创建一个新列?

来自分类Dev

创建一个mySQL视图,其中每一行是同一行中特定列的值

来自分类Dev

如何从一行中提取一个/两个/三个相邻单词?

来自分类Dev

创建一个新的pandas列,该列基于id从一行中获取值

来自分类Dev

如何将每3个值从一行转移到多列?

来自分类Dev

如何在Matlab中将矩阵的每一行乘以另一个矩阵的对应列?

Related 相关文章

  1. 1

    Python:如何从一行值创建一个完整的距离矩阵?

  2. 2

    根据行名将值从一个矩阵取到另一个矩阵

  3. 3

    如何通过使用其第一列作为新的第一行从另一个矩阵创建一个新矩阵?

  4. 4

    如何在 tableau 中创建从一行到另一个仪表板的链接

  5. 5

    如何创建一行“双胞胎”并仅更新一个值

  6. 6

    Excel:如何从一个创建多个行

  7. 7

    如何从一个值的元组中创建一个左值引用的元组

  8. 8

    检查矩阵的每一行是否在另一个矩阵中[Python]

  9. 9

    使用jquery将值从一行传递到另一个JSP

  10. 10

    如何在R中将一个矩阵的每一行与另一个矩阵相乘?

  11. 11

    如何创建具有特定行值+同一行上的下一个值的数据框?

  12. 12

    从一行中提取一个单词

  13. 13

    Python:如何在行和列的值之间创建一个对应矩阵?

  14. 14

    MySQL-如何从一个表的一行中仅选择两列

  15. 15

    如何从一行文本中提取一个int?

  16. 16

    如何从一行中修剪一个单词

  17. 17

    如何从矩阵中每一行的矢量化和与另一个矩阵获得矩阵

  18. 18

    如何使用另一个矩阵的非NA值以及在其中找到的行和列创建一个新矩阵?

  19. 19

    如何从一行SQL创建两行

  20. 20

    创建一个nxn矩阵python

  21. 21

    如何跳过矩阵的每一行中的第一个元素?

  22. 22

    Python从矩阵的每一行中减去第一个元素

  23. 23

    查找另一个矩阵中矩阵中每一行的最接近值

  24. 24

    如何为 sas 中的每一行分组 50 列并为其值创建一个新列?

  25. 25

    创建一个mySQL视图,其中每一行是同一行中特定列的值

  26. 26

    如何从一行中提取一个/两个/三个相邻单词?

  27. 27

    创建一个新的pandas列,该列基于id从一行中获取值

  28. 28

    如何将每3个值从一行转移到多列?

  29. 29

    如何在Matlab中将矩阵的每一行乘以另一个矩阵的对应列?

热门标签

归档