Python创建对称矩阵的方法示例【基于numpy模块】


Posted in Python onOctober 12, 2017

本文实例讲述了Python创建对称矩阵的方法。分享给大家供大家参考,具体如下:

对称(实对称)矩阵也即:Python创建对称矩阵的方法示例【基于numpy模块】

step 1:创建一个方阵

>>> import numpy as np
>>> X = np.random.rand(5**2).reshape(5, 5)
>>> X
array([[ 0.26984148, 0.25408384, 0.12428487, 0.0194565 , 0.91287708],
  [ 0.31837673, 0.35493156, 0.74336268, 0.31810561, 0.04409245],
  [ 0.06644445, 0.8967897 , 0.10990936, 0.05036292, 0.72581982],
  [ 0.94758512, 0.21375975, 0.36781736, 0.1633904 , 0.36070709],
  [ 0.53263787, 0.18380491, 0.0225521 , 0.91239367, 0.75521585]])

step 2:保留其上三角部分

>>> X = np.triu(X)
# 保留其上三角部分
>>> X
array([[ 0.26984148, 0.25408384, 0.12428487, 0.0194565 , 0.91287708],
  [ 0.  , 0.35493156, 0.74336268, 0.31810561, 0.04409245],
  [ 0.  , 0.  , 0.10990936, 0.05036292, 0.72581982],
  [ 0.  , 0.  , 0.  , 0.1633904 , 0.36070709],
  [ 0.  , 0.  , 0.  , 0.  , 0.75521585]])

step 3:将上三角”拷贝”到下三角部分

>>> X += X.T - np.diag(X.diagonal())
>>> X
array([[ 0.26984148, 0.25408384, 0.12428487, 0.0194565 , 0.91287708],
  [ 0.25408384, 0.35493156, 0.74336268, 0.31810561, 0.04409245],
  [ 0.12428487, 0.74336268, 0.10990936, 0.05036292, 0.72581982],
  [ 0.0194565 , 0.31810561, 0.05036292, 0.1633904 , 0.36070709],
  [ 0.91287708, 0.04409245, 0.72581982, 0.36070709, 0.75521585]])

注意,要减去一次对角线上的元素。因为上三角cov,和下三角cov.T在进行相加时会把主对角线上的元素相加两次。

step 4:测试

>>> X.T == X
array([[ True, True, True, True, True],
  [ True, True, True, True, True],
  [ True, True, True, True, True],
  [ True, True, True, True, True],
  [ True, True, True, True, True]], dtype=bool)

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python字典操作简明总结
Apr 13 Python
六个窍门助你提高Python运行效率
Jun 09 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
python reverse反转部分数组的实例
Dec 13 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
keras输出预测值和真实值方式
Jun 27 Python
Python中with上下文管理协议的作用及用法
Mar 18 Python
Python中的浮点数原理与运算分析
Oct 12 #Python
python中获得当前目录和上级目录的实现方法
Oct 12 #Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 #Python
Python调用C# Com dll组件实战教程
Oct 12 #Python
python 实现一个贴吧图片爬虫的示例
Oct 12 #Python
Python实现曲线点抽稀算法的示例
Oct 12 #Python
python去除字符串中的换行符
Oct 11 #Python
You might like
第十二节 类的自动加载 [12]
2006/10/09 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
php实现socket推送技术的示例
2017/12/20 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
动态加载dtree.js树treeview(示例代码)
2013/12/17 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
Python二维码生成识别实例详解
2019/07/16 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
Django使用rest_framework写出API
2020/05/21 Python
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
医药工作者的求职信范文
2013/09/21 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
员工工作心得体会
2019/05/07 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
图神经网络GNN算法
2022/05/11 Python