使用Numpy获取矩阵复共轭转置报错:ndarray无getH属性
解决Numpy复共轭转置报错问题
你遇到的报错是因为getH()是Numpy中matrix类的方法,而你通过np.array()创建的是ndarray数组,这类对象没有getH()属性。
有两种可行的解决方式:
- 方式一:将ndarray转换为matrix对象后调用
getH()
import numpy as np A = np.array([[2, 2-9j, -5j], [4-1j, 0, 9+6j], [4j, 6+7j, 6]]) # 转换为matrix对象 A_matrix = np.matrix(A) print(A_matrix.getH())
- 方式二:使用ndarray自带的
conj()和.T组合实现复共轭转置(更推荐,Numpy官方更倾向于使用ndarray而非matrix)
import numpy as np A = np.array([[2, 2-9j, -5j], [4-1j, 0, 9+6j], [4j, 6+7j, 6]]) # conj()计算复共轭,.T实现转置 print(A.conj().T)
两种方式都能得到矩阵的复共轭转置结果,其中第二种方式更符合Numpy当前的使用规范。
内容的提问来源于stack exchange,提问作者slow_learner
相关产品推荐
相关产品推荐

