• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python实现由数组生成对称矩阵

    在实际应用中,经常会遇上这样的小需求:根据一段给定的数组,生成由这一段数组值构成的对称矩阵。

    例如,给定数组[1,2,3,4,5,6,7,8,9,10],要求生成如下的矩阵:

    [[0,1,2,3,4],
     [1,0,5,6,7],
     [2,5,0,8,9],
     [3,6,8,0,10],
     [4,7,9,10,0]]
    

    其中,对角元全为0,该类型的矩阵完全由给定的数组决定。

    笔者给出实现以上功能的一种python参考代码如下:

    def semi_to_full(m):
        import numpy as np
        n = len(m)
        n_matrix = int((1+int((1+8*n)**0.5))/2)
        semi_matrix = np.zeros((n_matrix,n_matrix),dtype='int32')
    
        start_index = 0
        for row in range(n_matrix-1):
            end_index = start_index+(n_matrix-1-row)
            semi_matrix[row,row+1:]=m[start_index:end_index]
            start_index = end_index
    
        full_matrix = semi_matrix+semi_matrix.T
        
        return full_matrix
    
    

    代码逻辑如此:先得到数组长度以推定出所欲生成矩阵的规格,接着按照数组值的顺序生成矩阵的上对角元,最后利用对称性完成整个矩阵输出。

    该函数参数只有一个,即给定的numpy数组。

    到此这篇关于python实现由数组生成对称矩阵的文章就介绍到这了,更多相关由数组生成对称矩阵内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python:合并两个numpy矩阵的实现
    • Python实现求解斐波那契第n项的解法(包括矩阵乘法+快速幂)
    • Python 如何求矩阵的逆
    • python用分数表示矩阵的方法实例
    • Python numpy大矩阵运算内存不足如何解决
    • Python计算矩阵的和积的实例详解
    • python 如何将两个实数矩阵合并为一个复数矩阵
    上一篇:使用python爬取taptap网站游戏截图的步骤
    下一篇:使用Python实现二终端网络可靠度
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python实现由数组生成对称矩阵 python,实现,由,数组,生成,