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中requests模块的使用方法
Apr 08 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
Django处理文件上传File Uploads的实例
May 28 Python
学习python分支结构
May 17 Python
使用pip安装python库的多种方式
Jul 31 Python
Python获取时间戳代码实例
Sep 24 Python
深入浅析python的第三方库pandas
Feb 13 Python
keras中的backend.clip用法
May 22 Python
python爬虫基础知识点整理
Jun 02 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 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
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python遍历序列enumerate函数浅析
2017/10/17 Python
简单实现python画圆功能
2018/01/25 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
某公司部分笔试题
2013/11/05 面试题
促销活动计划书
2014/05/02 职场文书
音乐节策划方案
2014/06/09 职场文书
代办委托书怎么写
2014/08/01 职场文书
公务员政审个人总结
2015/02/12 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers