Python求矩阵的范数和行列式

 更新时间:2023年04月09日 11:43:21   作者:微小冷  
这篇文章主要介绍了Python求矩阵的范数和行列式,文章中有详细的代码实例,感兴趣的同学可以参考阅读

scipy.linalg的函数中,往往会提供两种参数,其一是check_finite,当为True时将进行有限检查,另一类是overwrite_xxxx,表示xxxx在计算过程中是否可以被覆写。简洁起见,后文中说a提供覆写开关,就表示存在一个参数overwrite_a,当其为True时,a允许计算过程中被覆写;若说提供有限检查开关,则代表提供check_finite参数。

范数

scipy.linalg中提供了函数norm用来求范数,其定义为

norm(a, ord=None, axis=None, keepdims=False, check_finite=True)

其中ord用于声明范数的阶 

ord矩阵范数向量范数
None弗罗贝尼乌斯范数2-范数
'fro'弗罗贝尼乌斯范数-
'nuc'核范数-
infmax(sum(abs(a), axis=1))max ⁡ ( ∣ a ∣ ) 
-infmin(sum(abs(a), axis=1))min ⁡ ( ∣ a ∣ ) 
0-sum(a!=0)
1max(sum(abs(a), axis=0))
-1min(sum(abs(a), axis=0))
22-范数(最大奇异值)
-2最小奇异值

 若a为向量,若ord为非零整数,记作n nn,设a i a_iai​为矩阵a aa中的元素,则矩阵的n nn范数为

核范数又称“迹范数” (trace norm),表示矩阵的所有奇异值之和。

Frobenius范数可定义为

 

其实质是向量的2-范数在矩阵中的自然推广。

除了scipy.linalg之外,numpy.linalg中也提供了norm,其参数为

norm(x, ord=None, axis=None, keepdims=False)

其中order的可选参数与scipy.linalg中的norm函数相同。

行列式

scipy.linalg中,行列式函数为det,其定义非常简单,除了待求矩阵a之外,就只有a的覆写开关和有限检查。

示例如下

import numpy as np
from scipy import linalg
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
linalg.det(a)
# 0.0
a = np.array([[0,2,3], [4,5,6], [7,8,9]])
linalg.det(a)
# 3.0

scipy.linalg不提供trace函数,但是numpy提供,其定义为

umpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)

其中

  • offset为偏移量,表示相对于主对角线的偏移
  • axis1, axis2 表示坐标轴
  • dtype 用于调整输出值的数据类型
>>> x = np.random.rand(3,3)
>>> print(x)
[[0.26832187 0.64615363 0.09006217]
 [0.63106319 0.65573765 0.35842304]
 [0.66629322 0.16999836 0.92357658]]
>>> np.trace(x)
1.8476361016546932

到此这篇关于Python求矩阵的范数和行列式的文章就介绍到这了,更多相关Python求矩阵范数和行列式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python基于opencv实现的简单画板功能示例

    Python基于opencv实现的简单画板功能示例

    这篇文章主要介绍了Python基于opencv实现的简单画板功能,结合实例形式分析了Python使用opencv模块进行图形绘制的相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • Python 多线程爬取案例

    Python 多线程爬取案例

    这篇文章主要介绍了Python 多线程爬取案例,爬虫属于I/O密集型的程序,所以使用多线程可以大大提高爬取效率,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Python的print函数如何覆盖打印

    Python的print函数如何覆盖打印

    这篇文章主要介绍了Python的print函数如何覆盖打印问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 解决pyttsx3无法封装的问题

    解决pyttsx3无法封装的问题

    今天小编就为大家分享一篇解决pyttsx3无法封装的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python列表数据如何按区间分组统计各组个数

    Python列表数据如何按区间分组统计各组个数

    这篇文章主要介绍了Python列表数据如何按区间分组统计各组个数,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例

    python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例,需要的朋友可以参考下
    2020-02-02
  • Python性能提升之延迟初始化

    Python性能提升之延迟初始化

    本文给大家分享的是在Python中使用延迟计算来提升性能的方法,非常的实用,有需要的小伙伴可以参考下
    2016-12-12
  • python如何将两个txt文件内容合并

    python如何将两个txt文件内容合并

    这篇文章主要为大家详细介绍了python如何将两个txt文件内容合并,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • 使用DataFrame删除行和列的实例讲解

    使用DataFrame删除行和列的实例讲解

    下面小编就为大家分享一篇使用DataFrame删除行和列的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 详解Python3中的多重继承和混入类

    详解Python3中的多重继承和混入类

    Python原生支持多重继承,这使得我们可以从多个父类中继承属性和方法,在本文中,我们将介绍Python中多重继承的概念,并讨论在实际情况下可能遇到的坑,我们还将讨论如何使用混入类来避免这些问题,需要的朋友可以参考下
    2023-05-05

最新评论