40python数据分析numpy基础之diag处理矩阵对角线元素

1 python数据分析numpy基础之diag处理矩阵对角线元素

python的numpy库的diag(v,k=0)函数,以一维数组的形式返回方阵的对角线元素,或将一维数组转换为方阵(非对角线元素为0)。

方阵:方形矩阵,行数和列数相等的矩阵。如果一个矩阵有n行和n列,则称为方阵。

矩阵:矩形阵列,由相同类型元素按矩形网格排列组成的二维结构。矩阵有2个维度,行和列,m×n的矩阵有m行n列。

主对角线:从矩阵的左上角到右下角的对角线,它的元素具有相同的行索引和列索引。

次对角线:从矩阵的右上角到左下角的对角线,它的元素的行索引+列索引=矩阵大小-1,a_ij,i+j=n-1,n为矩阵的行数或列数。

用法

numpy.diag(v, k=0)

描述

numpy.diag(v,k=0),是一个用于创建和处理对角线数组的函数,提取矩阵对角线元素构造一维数组,或根据一维数组构造方阵。

入参

v:必选,列表、元组、数组,表示要处理的数组;

k:可选,默认为0,表示对角线位置;

1.1 入参v

numpy.diag(v,k=0)的入参v为必选入参;

如果v是二维数组,返回k位置的对角线;

如果v是一维数组,返回一个v作为k位置对角线的方阵,非对角线元素为0;

>>> import numpy as np
# diag(v)创建和处理对角线元素的函数
# v为列表
>>> np.diag([[1,2,3],[4,5,6],[7,8,9]])
array([1, 5, 9])
# v为元组
>>> np.diag(((1,2,3),(4,5,6),(7,8,9)))
array([1, 5, 9])
# v为二维数组,提取矩阵对角线元素构造一维数组
>>> ar1=np.arange(1,10).reshape(3,3)
>>> ar1
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> np.diag(ar1)
array([1, 5, 9])
>>> np.arange(3)
array([0, 1, 2])
# v为一维数组,将一维数组作为主对角线,构造方阵
# 方阵的非对角线元素为0,行和列相等
>>> np.diag(np.arange(3))
array([[0, 0, 0],
       [0, 1, 0],
       [0, 0, 2]])

1.2 入参k

numpy.diag(v,k=0)的入参k为可选入参;

默认为0,返回主对角线;

小于0,返回主对角线左下方的对角线;

大于0,返回主对角线右上方的对角线;

>>> import numpy as np
# diag(v,k=0)创建和处理对角线元素的函数
>>> ar1=np.arange(1,26).reshape(5,5)
>>> ar1
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15],
       [16, 17, 18, 19, 20],
       [21, 22, 23, 24, 25]])
# v为二维数组,k=0返回主对角线的元素构造一维数组
>>> np.diag(ar1,k=0)
array([ 1,  7, 13, 19, 25])
# v为二维数组,k<0返回主对角线左下方的元素构造一维数组
>>> np.diag(ar1,k=-1)
array([ 6, 12, 18, 24])
# v为二维数组,k>0返回主对角线右上方的元素构造一维数组
>>> np.diag(ar1,k=1)
array([ 2,  8, 14, 20])
>>> np.arange(3)
array([0, 1, 2])
# v为一维数组,k=0将一维数组作为主对角线构造方阵,非对角线元素为0
>>> np.diag(np.arange(3),k=0)
array([[0, 0, 0],
       [0, 1, 0],
       [0, 0, 2]])
# v为一维数组,k=-1将一维数组作为主对角线的左下方的对角线构造方阵,非对角线元素为0
>>> np.diag(np.arange(3),k=-1)
array([[0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 2, 0]])
# v为一维数组,k=1将一维数组作为主对角线的右上方的对角线构造方阵,非对角线元素为0
>>> np.diag(np.arange(3),k=1)
array([[0, 0, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 2],
       [0, 0, 0, 0]])

相关推荐

  1. python数据分析numpy基础unique对数组元素去重

    2024-06-19 09:52:04       27 阅读
  2. python数据处理numpy

    2024-06-19 09:52:04       21 阅读
  3. Python数据处理NumPy

    2024-06-19 09:52:04       8 阅读
  4. 数据分析Numpy 数组处理

    2024-06-19 09:52:04       29 阅读

最近更新

  1. 基于python的时空地理加权回归(GTWR)模型

    2024-06-19 09:52:04       0 阅读
  2. c++端的类,作为组件在qml端使用

    2024-06-19 09:52:04       0 阅读
  3. Python笔记(3)

    2024-06-19 09:52:04       0 阅读
  4. 生成表的DDL语句没有字段描述和表名描述

    2024-06-19 09:52:04       0 阅读
  5. bitset和set总结

    2024-06-19 09:52:04       1 阅读
  6. Flask校验

    2024-06-19 09:52:04       1 阅读
  7. 基带成型(脉冲成形)

    2024-06-19 09:52:04       1 阅读

热门阅读

  1. HTML(6)——表单

    2024-06-19 09:52:04       14 阅读
  2. 【数据结构】练习集

    2024-06-19 09:52:04       12 阅读
  3. template标签

    2024-06-19 09:52:04       15 阅读
  4. Springboot应用设置跳过SSL证书认证

    2024-06-19 09:52:04       17 阅读
  5. MySQL-DML-约束

    2024-06-19 09:52:04       14 阅读
  6. 研导AI写作:辅助创作的未来伙伴

    2024-06-19 09:52:04       15 阅读
  7. vue3基础

    2024-06-19 09:52:04       16 阅读
  8. C++ 设计模式

    2024-06-19 09:52:04       15 阅读
  9. 19、架构-虚拟化容器

    2024-06-19 09:52:04       13 阅读