本文整理匯總了Python中numpy.complex_方法的典型用法代碼示例。如果您正苦於以下問題:Python numpy.complex_方法的具體用法?Python numpy.complex_怎麽用?Python numpy.complex_使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類numpy
的用法示例。
在下文中一共展示了numpy.complex_方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test_against_cmath
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def test_against_cmath(self):
import cmath
points = [-1-1j, -1+1j, +1-1j, +1+1j]
name_map = {'arcsin': 'asin', 'arccos': 'acos', 'arctan': 'atan',
'arcsinh': 'asinh', 'arccosh': 'acosh', 'arctanh': 'atanh'}
atol = 4*np.finfo(np.complex).eps
for func in self.funcs:
fname = func.__name__.split('.')[-1]
cname = name_map.get(fname, fname)
try:
cfunc = getattr(cmath, cname)
except AttributeError:
continue
for p in points:
a = complex(func(np.complex_(p)))
b = cfunc(p)
assert_(abs(a - b) < atol, "%s %s: %s; cmath: %s" % (fname, p, a, b))
示例2: test_against_cmath
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def test_against_cmath(self):
import cmath, sys
points = [-1-1j, -1+1j, +1-1j, +1+1j]
name_map = {'arcsin': 'asin', 'arccos': 'acos', 'arctan': 'atan',
'arcsinh': 'asinh', 'arccosh': 'acosh', 'arctanh': 'atanh'}
atol = 4*np.finfo(np.complex).eps
for func in self.funcs:
fname = func.__name__.split('.')[-1]
cname = name_map.get(fname, fname)
try:
cfunc = getattr(cmath, cname)
except AttributeError:
continue
for p in points:
a = complex(func(np.complex_(p)))
b = cfunc(p)
assert_(abs(a - b) < atol, "%s %s: %s; cmath: %s"%(fname, p, a, b))
示例3: test_against_cmath
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def test_against_cmath(self):
import cmath
points = [-1-1j, -1+1j, +1-1j, +1+1j]
name_map = {'arcsin': 'asin', 'arccos': 'acos', 'arctan': 'atan',
'arcsinh': 'asinh', 'arccosh': 'acosh', 'arctanh': 'atanh'}
atol = 4*np.finfo(complex).eps
for func in self.funcs:
fname = func.__name__.split('.')[-1]
cname = name_map.get(fname, fname)
try:
cfunc = getattr(cmath, cname)
except AttributeError:
continue
for p in points:
a = complex(func(np.complex_(p)))
b = cfunc(p)
assert_(abs(a - b) < atol, "%s %s: %s; cmath: %s" % (fname, p, a, b))
示例4: get_matrix_from_channel
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def get_matrix_from_channel(channel, symbol):
"""
Extract the numeric parameter matrix.
Args:
channel (matrix): a 4x4 symbolic matrix.
symbol (list): a symbol xi
Returns:
matrix: a 4x4 numeric matrix.
Additional Information:
Each entry of the 4x4 symbolic input channel matrix is assumed to
be a polynomial of the form a1x1 + ... + anxn + c. The corresponding
entry in the output numeric matrix is ai.
"""
from sympy import Poly
n = channel.rows
M = numpy.zeros((n, n), dtype=numpy.complex_)
for (i, j) in itertools.product(range(n), range(n)):
M[i, j] = numpy.complex(
Poly(channel[i, j], symbol).coeff_monomial(symbol))
return M
示例5: get_const_matrix_from_channel
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def get_const_matrix_from_channel(channel, symbols):
"""
Extract the numeric constant matrix.
Args:
channel (matrix): a 4x4 symbolic matrix.
symbols (list): The full list [x1, ..., xn] of symbols
used in the matrix.
Returns:
matrix: a 4x4 numeric matrix.
Additional Information:
Each entry of the 4x4 symbolic input channel matrix is assumed to
be a polynomial of the form a1x1 + ... + anxn + c. The corresponding
entry in the output numeric matrix is c.
"""
from sympy import Poly
n = channel.rows
M = numpy.zeros((n, n), dtype=numpy.complex_)
for (i, j) in itertools.product(range(n), range(n)):
M[i, j] = numpy.complex(
Poly(channel[i, j], symbols).coeff_monomial(1))
return M
示例6: _default
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def _default(obj):
"""
Convert dates and numpy objects in a json serializable format.
"""
if isinstance(obj, datetime):
return obj.strftime('%Y-%m-%dT%H:%M:%SZ')
elif isinstance(obj, date):
return obj.strftime('%Y-%m-%d')
elif isinstance(obj, (np.int_, np.intc, np.intp, np.int8, np.int16,
np.int32, np.int64, np.uint8, np.uint16,
np.uint32, np.uint64)):
return int(obj)
elif isinstance(obj, np.bool_):
return bool(obj)
elif isinstance(obj, (np.float_, np.float16, np.float32, np.float64,
np.complex_, np.complex64, np.complex128)):
return float(obj)
raise TypeError(f"Object of type '{obj.__class__.__name__}' is not JSON serializable")
示例7: test_numpy_scalar
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def test_numpy_scalar(self):
dtype = self.dtype
if dtype is numpy.bool_:
x = dtype(True)
elif issubclass(dtype, numpy.complex_):
x = dtype(3.2 - 2.4j)
elif issubclass(dtype, numpy.integer):
x = dtype(3)
elif issubclass(dtype, numpy.floating):
x = dtype(3.2)
else:
assert False
y = cuda.to_cpu(x)
assert isinstance(y, numpy.ndarray)
assert y.shape == ()
assert y.dtype == dtype
assert y == x
示例8: convert_esys_to_ndarray
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def convert_esys_to_ndarray(esys_qutip):
"""Takes a qutip eigenstates array, as obtained with .eigenstates(), and converts it into a pure numpy array.
Parameters
----------
esys_qutip: ndarray of qutip.Qobj
as obtained from qutip `.eigenstates()`
Returns
-------
ndarray
converted eigenstate data
"""
evals_count = len(esys_qutip)
dimension = esys_qutip[0].shape[0]
esys_ndarray = np.empty((evals_count, dimension), dtype=np.complex_)
for index, eigenstate in enumerate(esys_qutip):
esys_ndarray[index] = eigenstate.full()[:, 0]
return esys_ndarray
示例9: _zeropi_operator_in_product_basis
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def _zeropi_operator_in_product_basis(self, zeropi_operator, zeropi_evecs=None):
"""Helper method that converts a zeropi operator into one in the product basis.
Returns
-------
scipy.sparse.csc_matrix
operator written in the product basis
"""
zeropi_dim = self.zeropi_cutoff
zeta_dim = self.zeta_cutoff
if zeropi_evecs is None:
_, zeropi_evecs = self._zeropi.eigensys(evals_count=zeropi_dim)
op_eigen_basis = sparse.dia_matrix((zeropi_dim, zeropi_dim),
dtype=np.complex_) # is this guaranteed to be zero?
op_zeropi = spec_utils.get_matrixelement_table(zeropi_operator, zeropi_evecs)
for n in range(zeropi_dim):
for m in range(zeropi_dim):
op_eigen_basis += op_zeropi[n, m] * op.hubbard_sparse(n, m, zeropi_dim)
return sparse.kron(op_eigen_basis, sparse.identity(zeta_dim, format='csc', dtype=np.complex_), format='csc')
示例10: sparse_kinetic_mat
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def sparse_kinetic_mat(self):
"""
Kinetic energy portion of the Hamiltonian.
TODO: update this method to use single-variable operator methods
Returns
-------
scipy.sparse.csc_matrix
matrix representing the kinetic energy operator
"""
pt_count = self.grid.pt_count
dim_theta = 2 * self.ncut + 1
identity_phi = sparse.identity(pt_count, format='csc', dtype=np.complex_)
identity_theta = sparse.identity(dim_theta, format='csc', dtype=np.complex_)
kinetic_matrix_phi = self.grid.second_derivative_matrix(prefactor=-2.0 * self.ECJ)
diag_elements = 2.0 * self.ECS * np.square(np.arange(-self.ncut + self.ng, self.ncut + 1 + self.ng))
kinetic_matrix_theta = sparse.dia_matrix((diag_elements, [0]), shape=(dim_theta, dim_theta)).tocsc()
kinetic_matrix = (sparse.kron(kinetic_matrix_phi, identity_theta, format='csc')
+ sparse.kron(identity_phi, kinetic_matrix_theta, format='csc'))
kinetic_matrix -= 2.0 * self.ECS * self.dCJ * self.i_d_dphi_operator() * self.n_theta_operator()
return kinetic_matrix
示例11: __init__
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def __init__(self, EJ1, EJ2, EJ3, ECJ1, ECJ2, ECJ3, ECg1, ECg2, ng1, ng2, flux, ncut,
truncated_dim=None):
self.EJ1 = EJ1
self.EJ2 = EJ2
self.EJ3 = EJ3
self.ECJ1 = ECJ1
self.ECJ2 = ECJ2
self.ECJ3 = ECJ3
self.ECg1 = ECg1
self.ECg2 = ECg2
self.ng1 = ng1
self.ng2 = ng2
self.flux = flux
self.ncut = ncut
self.truncated_dim = truncated_dim
self._sys_type = type(self).__name__
self._evec_dtype = np.complex_
self._default_grid = discretization.Grid1d(-np.pi / 2, 3 * np.pi / 2, 100) # for plotting in phi_j basis
self._image_filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'qubit_pngs/fluxqubit.png')
示例12: _standard_normal
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def _standard_normal(shape, randstate=np.random, dtype=np.float_):
"""Generates a standard normal numpy array of given shape and dtype, i.e.
this function is equivalent to `randstate.randn(*shape)` for real dtype and
`randstate.randn(*shape) + 1.j * randstate.randn(shape)` for complex dtype.
:param tuple shape: Shape of array to be returned
:param randstate: An instance of :class:`numpy.random.RandomState` (default is
``np.random``))
:param dtype: ``np.float_`` (default) or `np.complex_`
Returns
-------
A: An array of given shape and dtype with standard normal entries
"""
if dtype == np.float_:
return randstate.randn(*shape)
elif dtype == np.complex_:
return randstate.randn(*shape) + 1.j * randstate.randn(*shape)
else:
raise ValueError('{} is not a valid dtype.'.format(dtype))
示例13: _random_vec
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def _random_vec(sites, ldim, randstate=None, dtype=np.complex_):
"""Returns a random complex vector (normalized to ||x||_2 = 1) of shape
(ldim,) * sites, i.e. a pure state with local dimension `ldim` living on
`sites` sites.
:param sites: Number of local sites
:param ldim: Local ldimension
:param randstate: numpy.random.RandomState instance or None
:returns: numpy.ndarray of shape (ldim,) * sites
>>> psi = _random_vec(5, 2); psi.shape
(2, 2, 2, 2, 2)
>>> np.abs(np.vdot(psi, psi) - 1) < 1e-6
True
"""
shape = (ldim, ) * sites
psi = _randfuncs[dtype](shape, randstate=randstate)
psi /= np.linalg.norm(psi)
return psi
示例14: _random_op
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def _random_op(sites, ldim, hermitian=False, normalized=False, randstate=None,
dtype=np.complex_):
"""Returns a random operator of shape (ldim,ldim) * sites with local
dimension `ldim` living on `sites` sites in global form.
:param sites: Number of local sites
:param ldim: Local ldimension
:param hermitian: Return only the hermitian part (default False)
:param normalized: Normalize to Frobenius norm=1 (default False)
:param randstate: numpy.random.RandomState instance or None
:returns: numpy.ndarray of shape (ldim,ldim) * sites
>>> A = _random_op(3, 2); A.shape
(2, 2, 2, 2, 2, 2)
"""
op = _randfuncs[dtype]((ldim**sites,) * 2, randstate=randstate)
if hermitian:
op += np.transpose(op).conj()
if normalized:
op /= np.linalg.norm(op)
return op.reshape((ldim,) * 2 * sites)
示例15: test_operations_typesafety
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import complex_ [as 別名]
def test_operations_typesafety(nr_sites, local_dim, rank, rgen):
# create a real MPA
mpo1 = factory.random_mpa(nr_sites, (local_dim, local_dim), rank,
randstate=rgen, dtype=np.float_)
mpo2 = factory.random_mpa(nr_sites, (local_dim, local_dim), rank,
randstate=rgen, dtype=np.complex_)
assert mpo1.dtype == np.float_
assert mpo2.dtype == np.complex_
assert (mpo1 + mpo1).dtype == np.float_
assert (mpo1 + mpo2).dtype == np.complex_
assert (mpo2 + mpo1).dtype == np.complex_
assert mp.sumup((mpo1, mpo1)).dtype == np.float_
assert mp.sumup((mpo1, mpo2)).dtype == np.complex_
assert mp.sumup((mpo2, mpo1)).dtype == np.complex_
assert (mpo1 - mpo1).dtype == np.float_
assert (mpo1 - mpo2).dtype == np.complex_
assert (mpo2 - mpo1).dtype == np.complex_
mpo1 += mpo2
assert mpo1.dtype == np.complex_