Problem using numpy to obtain the complex conjugate of a matrix

Question:

I have the following code:

import numpy as np
A=np.array([[2, 2-9j, -5j], [4-1j, 0, 9+6j], [4j, 6+7j, 6]])
print(A)
print(A.getH())

It doesn’t work. I have checked different webs and followed this webpage (geeksforgeeks), and this other(official numpy documentation) but I still get an error and I don’t know where. Can someone please help me?

The error is 'numpy.ndarray' object has no attribute 'getH'

Asked By: slow_learner

||

Answers:

That’s correct, a numpy array doesn’t have a method getH. Your second link actually is the official documentation, and it shows that the method is not called getH. Read the documentation closely!

Answered By: Marcus Müller

You have to use numpy.conj() function.

import numpy as np
A=np.array([[2, 2-9j, -5j], [4-1j, 0, 9+6j], [4j, 6+7j, 6]])
print(A)
print(A.conj())

Output

[[ 2.+0.j  2.-9.j -0.-5.j]
 [ 4.-1.j  0.+0.j  9.+6.j]
 [ 0.+4.j  6.+7.j  6.+0.j]]
[[ 2.-0.j  2.+9.j -0.+5.j]
 [ 4.+1.j  0.-0.j  9.-6.j]
 [ 0.-4.j  6.-7.j  6.-0.j]]
Answered By: Abinashbunty

You’re looking at pages about the numpy.matrix class, but the numpy.array function creates instances of numpy.ndarray, not numpy.matrix.

You could use numpy.matrix, but that’s a bad idea. numpy.matrix has a lot of weird compatibility problems, and its use is discouraged in new code. Instead, use numpy.conj:

print(numpy.conj(A))
Answered By: user2357112