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访问纯真IP数据库的代码
May 19 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
python机器学习之决策树分类详解
Dec 20 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
python中的 zip函数详解及用法举例
Feb 16 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
详解python polyscope库的安装和例程
Nov 13 Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 Python
python dir函数快速掌握用法技巧
Dec 09 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
php防止sql注入简单分析
2015/03/18 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
Python简单日志处理类分享
2015/02/14 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python 下载及安装详细步骤
2019/11/04 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
高中地理教学反思
2014/01/29 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
学校个人对照检查材料
2014/08/26 职场文书
2014年卫生工作总结
2014/11/27 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS