Python矩阵运算实战:转置、逆矩阵与共轭矩阵处理详解

白榆
白榆
发布时间:2026-10-13 | 5人浏览过
原创

本文详细解析Python中矩阵的转置、逆运算及共轭矩阵处理方法。通过具体代码实例,演示如何利用NumPy进行矩阵内积计算,并重点解决ndarray对象无法直接调用逆矩阵属性.I的问题,提供转换为matrix类型的解决方案。同时补充说明实数与复数矩阵在共轭转置上的区别,以及Fortran中相关函数的应用。

Python矩阵运算基础与代码示例

本文直接通过代码示例来展示核心内容,便于读者快速理解。


#先定义两个矩阵
X=np.array([[1,2104,5,1,45],[1,1416,3,2,40],[1,1534,3,2,30],[1,852,2,1,36]])
 
y=np.array([45,40,30,36])
#内积以后发现
c=np.dot(X.T,X)
c
array([[  4, 5906,  13,  6,  151],
  [ 5906, 9510932, 21074, 8856, 228012],
  [  13, 21074,  47,  19,  507],
  [  6, 8856,  19,  10,  221],
  [ 151, 228012,  507,  221, 5821]])
c.I
d=np.dot(c.I,X.T)
Traceback (most recent call last):
 
 File "<ipython-input-59-5f34dde97959>", line 1, in <module>
 d=np.dot(c.I,X.T)
 
AttributeError: 'numpy.ndarray' object has no attribute 'I'

#说明array进行内积以后已经不是array对象,成为ndarray对象,不能再进行.I,.T,.M的操作。
#解决方法:把结果转为matrix就可以
a=np.matrix([[  4, 5906,  13,  6,  151],
  [ 5906, 9510932, 21074, 8856, 228012],
  [  13, 21074,  47,  19,  507],
  [  6, 8856,  19,  10,  221],
  [ 151, 228012,  507,  221, 5821]])

a.I
matrix([[ -4.12181049e+13, 1.93633440e+11, -8.76643127e+13,
   -3.06844458e+13, 2.28487459e+12],
  [ 1.93633440e+11, -9.09646601e+08, 4.11827338e+11,
   1.44148665e+11, -1.07338299e+10],
  [ -8.76643127e+13, 4.11827338e+11, -1.86447963e+14,
   -6.52609055e+13, 4.85956259e+12],
  [ -3.06844458e+13, 1.44148665e+11, -6.52609055e+13,
   -2.28427584e+13, 1.70095424e+12],
  [ 2.28487459e+12, -1.07338299e+10, 4.85956259e+12,
   1.70095424e+12, -1.26659193e+11]])

矩阵共轭与转置概念解析

补充知识:矩阵与向量的共轭概念

矩阵主要分为实数矩阵和复数矩阵两类。

矩阵的转置操作是指将原矩阵的行与列互换位置。

共轭转置则是在完成矩阵转置(行列互换)后,对矩阵中的每一个元素取其共轭值。

对于形如 a+bi 的复数,其共轭复数为 a-bi;而实数的共轭即为其本身。

因此,实数矩阵的共轭转置等同于其普通转置矩阵;而复数矩阵的共轭转置则是先进行行列互换,再对每个元素取共轭。

Fortran中的共轭函数应用

在Fortran语言中,实现该功能调用的函数为:

CONJG(x)

求x的共轭复数。x:C, 结果:C

以上关于Python矩阵运算、转置、逆运算及共轭矩阵的实例分享完毕,希望能为读者提供参考,欢迎支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表