我想像这样生成分区对角矩阵A

给出矩阵B

B = -np.diag(np.ones(n - 2), -1) - np.diag(np.ones(n - 2), 1) + 4 * np.diag(np.ones(n - 1))

例如,

有没有一种方法可以不使用循环?

抱歉,第一次错误地上传了矩阵A和B的图形.

解决方法:

您可以将构建块堆叠到查找表中,然后通过在其中建立索引来构建A:

>>> from scipy import sparse

>>>

>>> n = 5

>>> B = sparse.diags([-1, 4, -1], [-1, 0, 1], (n-1, n-1), dtype=int).A

>>> A = sparse.diags([1, 2, 1], [-1, 0, 1], (n-1, n-1), dtype=int).A

# 0 means 0 0 0 ...,

# 1 means -I

# 2 means B

>>>

# next line builds the lookup table (using np.stack)

# does the lookup ...[A]

# and flattens the resulting 4D array after swapping

# the middle axes; the swap reorders the entries from

# Vert, Horz, vert, horz to Vert, vert, Horz, horz

>>> A = np.stack([np.zeros_like(B), -np.identity(n-1, int), B])[A].swapaxes(1, 2).reshape((n-1)*(n-1), -1)

>>> A

array([[ 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

[-1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

[ 0, -1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0],

[ 0, 0, -1, 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0],

[-1, 0, 0, 0, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0],

[ 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0],

[ 0, 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0, 0, 0, 0, 0],

[ 0, 0, 0, -1, 0, 0, -1, 4, 0, 0, 0, -1, 0, 0, 0, 0],

[ 0, 0, 0, 0, -1, 0, 0, 0, 4, -1, 0, 0, -1, 0, 0, 0],

[ 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0, 0],

[ 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1, 0, 0, -1, 0],

[ 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, 0, 0, 0, -1],

[ 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 4, -1, 0, 0],

[ 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1, 0],

[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4, -1],

[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 4]])

请注意,稀疏构造函数仅出于其便利性而使用.稀疏矩阵将立即转换为密集矩阵(使用.A属性).

标签:python,numpy

python 对角阵_python-Numpy分区对角矩阵相关推荐

  1. python 虚部_python – Numpy警告:将Complex复制到实际丢弃的虚部

    我在Python中尝试使用Matlab代码 我的代码发出警告 /usr/lib/python2.7/dist-packages/numpy/core/numeric.py:235:ComplexWar ...

  2. python图像拼接_python numpy 和 opencv 图像拼接

    将多副图片拼接为一幅大图片 加入白边,分割图像 白边的增加使用了遮罩层 import numpy as np a = np.ones((10, 10)) print(a) mask = np.ones ...

  3. python如何创建不同元素的矩阵_Python numpy学习(2)——矩阵的用法

    Python矩阵的基本用法 mat()函数将目标数据的类型转化成矩阵(matrix) 1,mat()函数和array()函数的区别 Numpy函数库中存在两种不同的数据类型(矩阵matrix和数组ar ...

  4. python 对角阵_numpy创建单位矩阵和对角矩阵的实例

    在学习linear regression时经常处理的数据一般多是矩阵或者n维向量的数据形式,所以必须对矩阵有一定的认识基础. numpy中创建单位矩阵借助identity()函数.更为准确的说,此函数 ...

  5. python文本数据转换数值矩阵_python numpy矩阵的数据类型转换

    在python中,numpy矩阵的数据类型转换需要调用astype(),直接修改dtype是无效的.调用astype返回数据类型修改后的矩阵,但是源数据的类型不会变,需要再对源数据的赋值进行操作才可以 ...

  6. matlab imcrop 对应python函数_Python精讲Numpy基础,大牛笔记详细解释

    总认为Numpy是渣渣,直到深入接触以后才知道功能这么强大.堪比Matlab啊.果然是人生苦短,我用Python.所以本文作为一个记录&笔记,文章内容大多数取自网络以&官网快速入门等, ...

  7. python输入数字成数组_python – Numpy:将数值插入数组的最快方法,使得数组按顺序排列...

    假设我有一个数组my_array和一个奇异值my_val. (请注意,my_array始终排序). my_array = np.array([1, 2, 3, 4, 5]) my_val = 1.5 ...

  8. [转载] python radians函数_Python numpy.radians() 使用实例

    参考链接: Python中的numpy.cos The following are code examples for showing how to use . They are extracted ...

  9. [转载] python histogram函数_Python numpy.histogram_bin_edges函数方法的使用

    参考链接: Python中的numpy.ceil numpy.histogram_bin_edges numpy.histogram_bin_edges(a, bins=10, range=None, ...

最新文章

  1. 小甲鱼-累加数据段中的前3个字型数据【不对的话,请指教!】
  2. 设计模式——代理模式
  3. 数据中心发电机组的选择及控制
  4. POJ - 1026 Cipher(置换群的幂)
  5. C#中如何复制窗体到另一个项目
  6. 线性代数问卷调查反馈——Find The Determinant III,Takahashi‘s Basics in Education and Learning
  7. 学的php毫无兴趣,培训班学PHP,感觉兴趣越来越低,哎,真的很迷茫了!
  8. Raphael JS 矢量客户端开源框架
  9. Python | 重命名现有文件(os.rename()方法的示例)
  10. 计算机编码发展历史和编码方式
  11. Qt学习笔记-仿大佬读取setting文件(简单工厂模式)
  12. javascript中类的定义和使用{转载}
  13. 车辆出厂信息接口_航测遥感中心“漳州核电智慧工地管理系统平台”通过出厂验收...
  14. pytorch学习笔记(三十五):Momentum
  15. JavaScript命名冲突不可避免?
  16. 绍兴文理学院计算机网络期末,绍兴文理学院高频电子线路期末考试题.doc
  17. 什么是BOM?BOM和DOM的区别
  18. OpenGL ES 理解纹理与纹理过滤
  19. 面试:后端程序员面试题
  20. 玩转直播:如何从 0 到 1 构建简单直播系统

热门文章

  1. linux待机唤醒_Linux睡眠唤醒机制--Kernel态
  2. 《阿里云服务器搭建》------ 安装MySql
  3. Network - 计算机网络复习总结
  4. 中医基础-- 更新中
  5. 上士闻道,勤而行之,但是却得不到外界的认可, 怎么说?
  6. 实习日记(5-18)Socket与MQTT
  7. OLED 之 概念介绍
  8. 小鲁客栈---预告篇
  9. python shell怎么调字体大小_Linux_Shell 设置字体 前景色 与 背景色 的几种方法
  10. c语言简单的字符串处理