本文整理匯總了Python中numpy.conjugate方法的典型用法代碼示例。如果您正苦於以下問題:Python numpy.conjugate方法的具體用法?Python numpy.conjugate怎麽用?Python numpy.conjugate使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類numpy
的用法示例。
在下文中一共展示了numpy.conjugate方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: __init__
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def __init__(self, j):
self._j = j
self._c2r = np.zeros( (2*j+1, 2*j+1), dtype=np.complex128)
self._c2r[j,j]=1.0
for m in range(1,j+1):
self._c2r[m+j, m+j] = sgn[m] * np.sqrt(0.5)
self._c2r[m+j,-m+j] = np.sqrt(0.5)
self._c2r[-m+j,-m+j]= 1j*np.sqrt(0.5)
self._c2r[-m+j, m+j]= -sgn[m] * 1j * np.sqrt(0.5)
self._hc_c2r = np.conj(self._c2r).transpose()
self._conj_c2r = np.conjugate(self._c2r) # what is the difference ? conj and conjugate
self._tr_c2r = np.transpose(self._c2r)
#print(abs(self._hc_c2r.conj().transpose()-self._c2r).sum())
#
#
#
示例2: infidelity_diff
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def infidelity_diff(self, constant_value):
"""
Returns a ReportableQty that is the (element-wise in the vector case)
difference between `constant_value` and this one given by:
`1.0 - Re(conjugate(constant_value) * self )`
"""
# let diff(x) = 1.0 - Re(const.C * x) = 1.0 - (const.re * x.re + const.im * x.im)
# so d(diff)/dx.re = -const.re, d(diff)/dx.im = -const.im
# diff(x + dx) = diff(x) + d(diff)/dx * dx
# diff(x + dx) - diff(x) = - (const.re * dx.re + const.im * dx.im)
v = 1.0 - _np.real(_np.conjugate(constant_value) * self.value)
if self.has_eb():
eb = abs(_np.real(constant_value) * _np.real(self.errbar)
+ _np.imag(constant_value) * _np.real(self.errbar))
return ReportableQty(v, eb, self.nonMarkovianEBs)
else:
return ReportableQty(v)
示例3: is_hermitian
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def is_hermitian(mx, TOL=1e-9):
"""
Test whether mx is a hermitian matrix.
Parameters
----------
mx : numpy array
Matrix to test.
TOL : float, optional
Tolerance on absolute magitude of elements.
Returns
-------
bool
True if mx is hermitian, otherwise False.
"""
(m, n) = mx.shape
for i in range(m):
if abs(mx[i, i].imag) > TOL: return False
for j in range(i + 1, n):
if abs(mx[i, j] - mx[j, i].conjugate()) > TOL: return False
return True
示例4: to_unitary
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def to_unitary(scaled_unitary):
"""
Compute the scaling factor required to turn a scalar multiple of a unitary matrix
to a unitary matrix.
Parameters
----------
scaled_unitary : ndarray
A scaled unitary matrix
Returns
-------
scale : float
unitary : ndarray
Such that `scale * unitary == scaled_unitary`.
"""
scaled_identity = _np.dot(scaled_unitary, _np.conjugate(scaled_unitary.T))
scale = _np.sqrt(scaled_identity[0, 0])
assert(_np.allclose(scaled_identity / (scale**2), _np.identity(scaled_identity.shape[0], 'd'))), \
"Given `scaled_unitary` does not appear to be a scaled unitary matrix!"
return scale, (scaled_unitary / scale)
示例5: state_to_dmvec
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def state_to_dmvec(psi):
"""
Compute the vectorized density matrix which acts as the state `psi`.
This is just the outer product map |psi> => |psi><psi| with the
output flattened, i.e. `dot(psi, conjugate(psi).T)`.
Parameters
----------
psi : numpy array
The state vector.
Returns
-------
numpy array
The vectorized density matrix.
"""
psi = psi.reshape((psi.size, 1)) # convert to (N,1) shape if necessary
dm = _np.dot(psi, _np.conjugate(psi.T))
return dm.flatten()
示例6: unitary_to_process_mx
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def unitary_to_process_mx(U):
"""
Compute the super-operator which acts on (row)-vectorized
density matrices from a unitary operator (matrix) U which
acts on state vectors. This super-operator is given by
the tensor product of U and conjugate(U), i.e. kron(U,U.conj).
Parameters
----------
U : numpy array
The unitary matrix which acts on state vectors.
Returns
-------
numpy array
The super-operator process matrix.
"""
# U -> kron(U,Uc) since U rho U_dag -> kron(U,Uc)
# since AXB --row-vectorize--> kron(A,B.T)*vec(X)
return _np.kron(U, _np.conjugate(U))
示例7: test_poly
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def test_poly(self):
assert_array_almost_equal(np.poly([3, -np.sqrt(2), np.sqrt(2)]),
[1, -3, -2, 6])
# From matlab docs
A = [[1, 2, 3], [4, 5, 6], [7, 8, 0]]
assert_array_almost_equal(np.poly(A), [1, -6, -72, -27])
# Should produce real output for perfect conjugates
assert_(np.isrealobj(np.poly([+1.082j, +2.613j, -2.613j, -1.082j])))
assert_(np.isrealobj(np.poly([0+1j, -0+-1j, 1+2j,
1-2j, 1.+3.5j, 1-3.5j])))
assert_(np.isrealobj(np.poly([1j, -1j, 1+2j, 1-2j, 1+3j, 1-3.j])))
assert_(np.isrealobj(np.poly([1j, -1j, 1+2j, 1-2j])))
assert_(np.isrealobj(np.poly([1j, -1j, 2j, -2j])))
assert_(np.isrealobj(np.poly([1j, -1j])))
assert_(np.isrealobj(np.poly([1, -1])))
assert_(np.iscomplexobj(np.poly([1j, -1.0000001j])))
np.random.seed(42)
a = np.random.randn(100) + 1j*np.random.randn(100)
assert_(np.isrealobj(np.poly(np.concatenate((a, np.conjugate(a))))))
示例8: test_testArrayMethods
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def test_testArrayMethods(self):
a = array([1, 3, 2])
assert_(eq(a.any(), a._data.any()))
assert_(eq(a.all(), a._data.all()))
assert_(eq(a.argmax(), a._data.argmax()))
assert_(eq(a.argmin(), a._data.argmin()))
assert_(eq(a.choose(0, 1, 2, 3, 4),
a._data.choose(0, 1, 2, 3, 4)))
assert_(eq(a.compress([1, 0, 1]), a._data.compress([1, 0, 1])))
assert_(eq(a.conj(), a._data.conj()))
assert_(eq(a.conjugate(), a._data.conjugate()))
m = array([[1, 2], [3, 4]])
assert_(eq(m.diagonal(), m._data.diagonal()))
assert_(eq(a.sum(), a._data.sum()))
assert_(eq(a.take([1, 2]), a._data.take([1, 2])))
assert_(eq(m.transpose(), m._data.transpose()))
示例9: test_generic_methods
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def test_generic_methods(self):
# Tests some MaskedArray methods.
a = array([1, 3, 2])
assert_equal(a.any(), a._data.any())
assert_equal(a.all(), a._data.all())
assert_equal(a.argmax(), a._data.argmax())
assert_equal(a.argmin(), a._data.argmin())
assert_equal(a.choose(0, 1, 2, 3, 4), a._data.choose(0, 1, 2, 3, 4))
assert_equal(a.compress([1, 0, 1]), a._data.compress([1, 0, 1]))
assert_equal(a.conj(), a._data.conj())
assert_equal(a.conjugate(), a._data.conjugate())
m = array([[1, 2], [3, 4]])
assert_equal(m.diagonal(), m._data.diagonal())
assert_equal(a.sum(), a._data.sum())
assert_equal(a.take([1, 2]), a._data.take([1, 2]))
assert_equal(m.transpose(), m._data.transpose())
示例10: test_testArrayMethods
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def test_testArrayMethods(self):
a = array([1, 3, 2])
self.assertTrue(eq(a.any(), a._data.any()))
self.assertTrue(eq(a.all(), a._data.all()))
self.assertTrue(eq(a.argmax(), a._data.argmax()))
self.assertTrue(eq(a.argmin(), a._data.argmin()))
self.assertTrue(eq(a.choose(0, 1, 2, 3, 4),
a._data.choose(0, 1, 2, 3, 4)))
self.assertTrue(eq(a.compress([1, 0, 1]), a._data.compress([1, 0, 1])))
self.assertTrue(eq(a.conj(), a._data.conj()))
self.assertTrue(eq(a.conjugate(), a._data.conjugate()))
m = array([[1, 2], [3, 4]])
self.assertTrue(eq(m.diagonal(), m._data.diagonal()))
self.assertTrue(eq(a.sum(), a._data.sum()))
self.assertTrue(eq(a.take([1, 2]), a._data.take([1, 2])))
self.assertTrue(eq(m.transpose(), m._data.transpose()))
示例11: qmat
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def qmat(self, modes=None):
""" Construct the covariance matrix for the Q function"""
if modes is None:
modes = list(range(self.nlen))
rows = np.reshape(modes, [-1, 1])
cols = np.reshape(modes, [1, -1])
sigmaq = np.concatenate(
(
np.concatenate(
(self.nmat[rows, cols], np.conjugate(self.mmat[rows, cols])), axis=1
),
np.concatenate(
(self.mmat[rows, cols], np.conjugate(self.nmat[rows, cols])), axis=1
),
),
axis=0,
) + np.identity(2 * len(modes))
return sigmaq
示例12: test_squeezed_coherent
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def test_squeezed_coherent(setup_backend, hbar, tol):
"""Test Wigner function for a squeezed coherent state
matches the analytic result"""
backend = setup_backend(1)
backend.prepare_coherent_state(np.abs(A), np.angle(A), 0)
backend.squeeze(R, PHI, 0)
state = backend.state()
W = state.wigner(0, XVEC, XVEC)
rot = rotm(PHI / 2)
# exact wigner function
alpha = A * np.cosh(R) - np.conjugate(A) * np.exp(1j * PHI) * np.sinh(R)
mu = np.array([alpha.real, alpha.imag]) * np.sqrt(2 * hbar)
cov = np.diag([np.exp(-2 * R), np.exp(2 * R)])
cov = np.dot(rot, np.dot(cov, rot.T)) * hbar / 2.0
Wexact = wigner(GRID, mu, cov)
assert np.allclose(W, Wexact, atol=0.01, rtol=0)
示例13: spectralwhitening
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def spectralwhitening(stream):
"""
Apply spectral whitening to data.
Data is divided by its smoothed (Default: None) amplitude spectrum.
"""
stream2 = copy.deepcopy(stream)
for trace in arange(len(stream2)):
data = stream2[trace].data
n = len(data)
nfft = nextpow2(n)
spec = fft(data, nfft)
spec_ampl = sqrt(abs(multiply(spec, conjugate(spec))))
spec /= spec_ampl # Do we need to do some smoothing here?
ret = real(ifft(spec, nfft)[:n])
stream2[trace].data = ret
return stream2
示例14: spectralwhitening_smooth
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def spectralwhitening_smooth(stream, N):
"""
Apply spectral whitening to data.
Data is divided by its smoothed (Default: None) amplitude spectrum.
"""
stream2 = copy.deepcopy(stream)
for trace in arange(len(stream2)):
data = stream2[trace].data
n = len(data)
nfft = nextpow2(n)
spec = fft(data, nfft)
spec_ampl = sqrt(abs(multiply(spec, conjugate(spec))))
spec_ampl = smooth(spec_ampl, N)
spec /= spec_ampl # Do we need to do some smoothing here?
ret = real(ifft(spec, nfft)[:n])
stream2[trace].data = ret
return stream2
示例15: _gaussian_basis_change
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import conjugate [as 別名]
def _gaussian_basis_change(qubits: Sequence[cirq.Qid],
transformation_matrix: numpy.ndarray,
initially_occupied_orbitals: Optional[Sequence[int]]
) -> cirq.OP_TREE:
n_qubits = len(qubits)
# Rearrange the transformation matrix because the OpenFermion routine
# expects it to describe annihilation operators rather than creation
# operators
left_block = transformation_matrix[:, :n_qubits]
right_block = transformation_matrix[:, n_qubits:]
transformation_matrix = numpy.block(
[numpy.conjugate(right_block), numpy.conjugate(left_block)])
decomposition, left_decomposition, _, left_diagonal = (
fermionic_gaussian_decomposition(transformation_matrix))
if (initially_occupied_orbitals is not None and
len(initially_occupied_orbitals) == 0):
# Starting with the vacuum state yields additional symmetry
circuit_description = list(reversed(decomposition))
else:
if initially_occupied_orbitals is None:
# The initial state is not a computational basis state so the
# phases left on the diagonal in the Givens decomposition matter
yield (cirq.rz(rads=
numpy.angle(left_diagonal[j])).on(qubits[j])
for j in range(n_qubits))
circuit_description = list(reversed(decomposition + left_decomposition))
yield _ops_from_givens_rotations_circuit_description(
qubits, circuit_description)