如何生成对角矩阵 numpy.diag

目录
  • 生成对角矩阵 numpy.diag
  • numpy.diag()结构及用法||参数
    • 参数详解
    • 示例

生成对角矩阵 numpy.diag

给定对角线上元素,我想生成对角矩阵,在网上搜了一下,竟然都是numpy.diagonal。

这个函数的作用是提取给定矩阵的对角元素,当然不是我想要的。

后来发现numpy.diag才是生成对角矩阵的函数,所以写此文章记录之。

import numpy as np
a=[1,2,3]
np.diag(a)
Out[4]: 
array([[1, 0, 0],
       [0, 2, 0],
       [0, 0, 3]])

numpy.diag()结构及用法||参数

numpy.diag(v,k=0) 

官方文档

以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换成方阵(非对角线元素为0).两种功能角色转变取决于输入的v。1

更深层的见numpy.diagnal()

参数详解

1.v:array_like.

如果v是2D数组,返回k位置的对角线。

如果v是1D数组,返回一个v作为k位置对角线的2维数组。

2.k:int, optional

对角线的位置,大于零位于对角线上面,小于零则在下面。

示例

>>> x = np.arange(9).reshape((3,3))
>>> x
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

>>> np.diag(x)
array([0, 4, 8])
>>> np.diag(x, k=1)
array([1, 5])
>>> np.diag(x, k=-1)
array([3, 7])
>>> np.diag(np.diag(x))
array([[0, 0, 0],
       [0, 4, 0],
       [0, 0, 8]])

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python常用库Numpy进行矩阵运算详解

    Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! Numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,Numpy的速度比Python列表的速度快了好几百.因为Numpy数组本身能节省内存,并且Numpy在执行算术.统计和线性代数运算时采用了优化算法. Numpy的另一个强大功能是具有可以表示向量和矩阵的多维数组数据结构.Numpy对矩阵运算进行了优化,使我们能够高效地执行线性代数运算,使其非常适合解决机器学习问题. 与Python列表相比

  • Python numpy中矩阵的基本用法汇总

    Python矩阵的基本用法 mat()函数将目标数据的类型转化成矩阵(matrix) 1,mat()函数和array()函数的区别 Numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素,虽然他们看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得到不同的结果,其中Numpy函数库中的matrix与MATLAB中matrices等价. 直接看一个例子: import numpy as np a = np.mat('1 3;5 7')

  • Python NumPy中diag函数的使用说明

    NumPy包中的内置diag函数很有意思. 假设创建一个1维数组a,和一个3*3数组b: import numpy as np a = np.arange(1, 4) b = np.arange(1, 10).reshape(3, 3) 结果如下: >>> a array([1, 2, 3]) >>> b array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 使用diag函数,看一看结果: >>> np.diag(a) ar

  • numpy创建单位矩阵和对角矩阵的实例

    在学习linear regression时经常处理的数据一般多是矩阵或者n维向量的数据形式,所以必须对矩阵有一定的认识基础. numpy中创建单位矩阵借助identity()函数.更为准确的说,此函数创建的是一个n*n的单位数组,返回值的dtype=array数据形式.其中接受的参数有两个,第一个是n值大小,第二个为数据类型,一般为浮点型.单位数组的概念与单位矩阵相同,主对角线元素为1,其他元素均为零,等同于单位1.而要想得到单位矩阵,只要用mat()函数将数组转换为矩阵即可. >>>

  • 如何生成对角矩阵 numpy.diag

    目录 生成对角矩阵 numpy.diag numpy.diag()结构及用法||参数 参数详解 示例 生成对角矩阵 numpy.diag 给定对角线上元素,我想生成对角矩阵,在网上搜了一下,竟然都是numpy.diagonal. 这个函数的作用是提取给定矩阵的对角元素,当然不是我想要的. 后来发现numpy.diag才是生成对角矩阵的函数,所以写此文章记录之. import numpy as np a=[1,2,3] np.diag(a) Out[4]:  array([[1, 0, 0],  

  • python数学建模之Numpy 应用介绍与Pandas学习

    目录 Numpy学习 1 Numpy 介绍与应用 1-1Numpy是什么 2 NumPy Ndarray 对象 3 Numpy 数据类型 4 Numpy 数组属性 Pandas学习 1 pandas新增数据列 2 Pandas数据统计函数 3 Pandas对缺失值的处理 总结 Numpy学习 1 Numpy 介绍与应用 1-1Numpy是什么 NumPy 是一个运行速度非常快的数学库,一个开源的的python科学计算库,主要用于数组.矩阵计算,包含: 一个强大的N维数组对象 ndarray广播功

  • Python科学计算包numpy用法实例详解

    本文实例讲述了Python科学计算包numpy用法.分享给大家供大家参考,具体如下: 1 数据结构 numpy使用一种称为ndarray的类似Matlab的矩阵式数据结构管理数据,比python的列表和标准库的array类更为强大,处理数据更为方便. 1.1 数组的生成 在numpy中,生成数组需要指定数据类型,默认是int32,即整数,可以通过dtype参数来指定,一般用到的有int32.bool.float32.uint32.complex,分别代表整数.布尔值.浮点型.无符号整数和复数 一

  • NumPy.npy与pandas DataFrame的实例讲解

    用CSV格式来保存文件是个不错的主意,因为大部分程序设计语言和应用程序都能处理这种格式,所以交流起来非常方便.然而这种格式的存储效率不是很高,原因是CSV及其他纯文本格式中含有大量空白符;而后来发明的一些文件格式,如zip.bzip和gzip等,压缩率则有了显著提升. 首先导入模块: In [1]: import numpy as np In [2]: import pandas as pd In [3]: from tempfile import NamedTemporaryFile In [

  • Python numpy 模块介绍

    目录 1. numpy 简介 numpy 应用场景 numpy 模块安装 numpy 模块使用 2. numpy 特点 3. numpy 常用方法 4. 实例 前言: 在motplotlib的学习过程中,我们使用最多的就是numpy模块. numpy 模块被称为 matplotlib 模块绘制图表伴侣. xdm,接下来我们来对 matplotlib 伴侣-numpy 模块相关知识的学习 1. numpy 简介 numpy 模块是 Python 支持对大量数组进行科学计算的第三方库. numpy

  • python共轭梯度法特征值迭代次数讨论

    共轭梯度法,特征值聚堆情况下迭代次数讨论 输入各种特征值聚堆与分散时的矩阵,并应用共轭梯度法,观察迭代次数与聚堆情况的关系. 因为对角矩阵的对角线元素为其特征值,则用对角矩阵讨论较为方便 代码 import numpy as np def cg(x0, A, b): r0 = np.dot(A, x0) - b p0 = -r0 rk = r0 pk = p0 xk = x0 t = 0 #记录迭代次数 while np.linalg.norm(rk) >= 1e-6: rr = np.dot(

  • 对Tensorflow中的矩阵运算函数详解

    tf.diag(diagonal,name=None) #生成对角矩阵 import tensorflowas tf; diagonal=[1,1,1,1] with tf.Session() as sess: print(sess.run(tf.diag(diagonal))) #输出的结果为[[1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1]] tf.diag_part(input,name=None) #功能与tf.diag函数相反,返回对角阵的对角元素 imp

  • Python 中导入csv数据的三种方法

    Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组,用来训练算法模型.: from csv importreader import numpy as np filename=input("请输入文件名: ") withopen(filename,'rt',encoding='

随机推荐