Python Numpy 线性代数操作总结(随时更新)

Python Numpy 线性代数操作总结(随时更新)

本博客主要是总结一些自己在学习AI时遇到的一些问题,本着从实践出发,非教科书式的陈列,解决一些网上暂无可用的问题,也希望能和大家一同交流学习。


1.矩阵的主对角线
如果时二维矩阵,则返回该矩阵的主对角线。如果传入的是一维数据,返回以该数组为主对角线的对角矩阵。

diag(v, k=0) # v为矩阵类型,k为偏移量

当为二维或多维数据时,其实现等价于

diagonal(a, offset=0, axis1=0, axis2=1) # a为矩阵类型,offset为偏移量,axis1指定坐标轴,axis2确定2维子对角线

2.矩阵的副(次)对角线

v = fliplr(v) # 首先将矩阵沿Y轴做翻转
diagonal(v, k) # 求翻转后的矩阵主对角线

3.判断向量某元素范围内连续

res = zeros(n)  # 定义一个0向量(不做判断范围赋0)
res[v_slice[0]: v_slice[1]] = [1, 2, 4] # 连续范围内赋值(依实际情况赋值)
v_dot = dot(v, res.T)   # 如果向量积为赋值和的倍数,说明在该向量某元素在该范围内连续

4.矩阵主对角线赋值
先取其对焦向量,算出与赋值的差,构造对角矩阵,并于原矩阵进行运算

v + diag(-diag(v) + value)  # 构造对焦矩阵与原矩阵做运算

5.矩阵副(次)对角线赋值
先沿Y轴翻转,赋值后再次翻转

v = fliplr(v)   # 将矩阵沿Y轴翻转
fliplr(v + diag(-diag(v) + value))  # 赋值(同4)后再次翻转

你可能感兴趣的:(学习,总结,python,numpy)