Numpy array changes values when not expected!

I am trying to create a new variable q2 within a loop to be the same as variable b but with value q2[2,2]=b[2,2]+Badd. When I run this loop, for some reason it updates both q2[2,2] and b[2,2] and I don’t understand why! Any help much appreciated!

        for ib, beta in enumerate(wDir):
            for iw, w in enumerate(wFreq):
                X = Fe[ib,:,iw]
                a = A[:,:,iw]
                b = B[:,:,iw]
                q2=B[:,:,iw]
                val=B[2,2,iw]
                q2[2,2]=val+Badd

                print q2[2,2]
                print b[2,2]
                
                C = -(w**2)*(a + M)  + 1j*w*(b) + KHyd
                Q2 = -(w**2)*(a + M)  + 1j*w*(q2) + KHyd
                RAO[ib,:,iw] = np.dot(X, np.matrix(C).I)
                RAOQ2[ib,:,iw] = np.dot(X, np.matrix(Q2).I)