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 bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
Python中的XML库4Suite Server的介绍
Apr 14 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
python学习基础之循环import及import过程
Apr 22 Python
Django添加sitemap的方法示例
Aug 06 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
解决Django生产环境无法加载静态文件问题的解决
Apr 23 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
python如何处理程序无法打开
Jun 16 Python
python 制作本地应用搜索工具
Feb 27 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
BBS(php & mysql)完整版(二)
2006/10/09 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
jQuery技巧总结
2011/01/01 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
Python实现的单向循环链表功能示例
2017/11/10 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python中Numpy mat的使用详解
2019/05/24 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
社区健康教育工作方案
2014/06/03 职场文书
法人代表资格证明书
2015/06/18 职场文书
Python实现机器学习算法的分类
2021/06/03 Python
nginx实现动静分离的方法示例
2021/11/07 Servers
使用Python开发冰球小游戏
2022/04/30 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
VUE递归树形实现多级列表
2022/07/15 Vue.js