携程网站的会计工作怎么做,装修设计公司加盟,记事本html网页制作代码,百度搜索引擎1 python数据分析numpy基础之diag处理矩阵对角线元素
python的numpy库的diag(v,k0)函数#xff0c;以一维数组的形式返回方阵的对角线元素#xff0c;或将一维数组转换为方阵#xff08;非对角线元素为0#xff09;。
方阵#xff1a;方形矩阵#xff0c;行数和列数相等…1 python数据分析numpy基础之diag处理矩阵对角线元素
python的numpy库的diag(v,k0)函数以一维数组的形式返回方阵的对角线元素或将一维数组转换为方阵非对角线元素为0。
方阵方形矩阵行数和列数相等的矩阵。如果一个矩阵有n行和n列则称为方阵。
矩阵矩形阵列由相同类型元素按矩形网格排列组成的二维结构。矩阵有2个维度行和列m×n的矩阵有m行n列。
主对角线从矩阵的左上角到右下角的对角线它的元素具有相同的行索引和列索引。
次对角线从矩阵的右上角到左下角的对角线它的元素的行索引列索引矩阵大小-1a_ijijn-1n为矩阵的行数或列数。
用法
numpy.diag(v, k0)描述
numpy.diag(v,k0)是一个用于创建和处理对角线数组的函数提取矩阵对角线元素构造一维数组或根据一维数组构造方阵。
入参
v必选列表、元组、数组表示要处理的数组
k可选默认为0表示对角线位置
1.1 入参v
numpy.diag(v,k0)的入参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为二维数组提取矩阵对角线元素构造一维数组ar1np.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,k0)的入参k为可选入参
默认为0返回主对角线
小于0返回主对角线左下方的对角线
大于0返回主对角线右上方的对角线 import numpy as np
# diag(v,k0)创建和处理对角线元素的函数ar1np.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为二维数组k0返回主对角线的元素构造一维数组np.diag(ar1,k0)
array([ 1, 7, 13, 19, 25])
# v为二维数组k0返回主对角线左下方的元素构造一维数组np.diag(ar1,k-1)
array([ 6, 12, 18, 24])
# v为二维数组k0返回主对角线右上方的元素构造一维数组np.diag(ar1,k1)
array([ 2, 8, 14, 20])np.arange(3)
array([0, 1, 2])
# v为一维数组k0将一维数组作为主对角线构造方阵非对角线元素为0np.diag(np.arange(3),k0)
array([[0, 0, 0],[0, 1, 0],[0, 0, 2]])
# v为一维数组k-1将一维数组作为主对角线的左下方的对角线构造方阵非对角线元素为0np.diag(np.arange(3),k-1)
array([[0, 0, 0, 0],[0, 0, 0, 0],[0, 1, 0, 0],[0, 0, 2, 0]])
# v为一维数组k1将一维数组作为主对角线的右上方的对角线构造方阵非对角线元素为0np.diag(np.arange(3),k1)
array([[0, 0, 0, 0],[0, 0, 1, 0],[0, 0, 0, 2],[0, 0, 0, 0]])