module ‘numpy.linalg‘ has no attribute ‘expm‘

遇到问题:

在这里插入图片描述


问题描述:

在这里插入图片描述

在学习python计算机视觉编程时,在照相机标定这遇到的问题,numpy.linalg中没有expm函数。

numpy.linalg模块包含线性代数的函数。使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等

在计算矩阵函数时,expm3用泰勒级数展开方法,expm2用特征值分解的方法,而expm用pade近似的方法,其计算结果更为准确。
pade近似
在这里插入图片描述


原因分析:

搜索发现linalg模块不只在scipy中包含,同样也在numpy中包含。

不过scipy中的linalg包括了numpy的线性代数求解模块,而且expm函数是scipy中特有的,因此在调用linalg最好用scipy中的。


解决方案:

在这里插入图片描述
对numpy中的模块单独调用,此时linalg即为scipy中的模块
在这里插入图片描述
愉快的运行出结果~~~

参考资料:

https://blog.csdn.net/weixin_40400177/article/details/103550997?biz_id=102&utm_term=linalgexpm&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-103550997&spm=1018.2118.3001.4449