本文整理汇总了Python中numpy.integer方法的典型用法代码示例。如果您正苦于以下问题:Python numpy.integer方法的具体用法?Python numpy.integer怎么用?Python numpy.integer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类numpy
的用法示例。
在下文中一共展示了numpy.integer方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _add_choices
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def _add_choices(self, nchoices):
if isinstance(nchoices, int):
self.nchoices = nchoices
self.choice_names = None
elif isinstance(nchoices, list) or nchoices.__class__.__name__ == "Series" or nchoices.__class__.__name__ == "DataFrame":
self.choice_names = np.array(nchoices).reshape(-1)
self.nchoices = self.choice_names.shape[0]
if np.unique(self.choice_names).shape[0] != self.choice_names.shape[0]:
raise ValueError("Arm/choice names contain duplicates.")
elif isinstance(nchoices, np.ndarray):
self.choice_names = nchoices.reshape(-1)
self.nchoices = self.choice_names.shape[0]
if np.unique(self.choice_names).shape[0] != self.choice_names.shape[0]:
raise ValueError("Arm/choice names contain duplicates.")
else:
raise ValueError("'nchoices' must be an integer or list with named arms.")
示例2: make_rdm12
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def make_rdm12(self, fcivec, norb, nelec, link_index=None, **kwargs):
if isinstance(nelec, (int, numpy.integer)):
nelectrons = nelec
else:
nelectrons = nelec[0]+nelec[1]
nstates = len(self.state_weights)
# If norm != 1 then the state weights will need normalising.
norm = sum(self.state_weights)
two_pdm = numpy.zeros( (norb, norb, norb, norb) )
for irdm in range(nstates):
if self.state_weights[irdm] != 0.0:
dm_filename = 'spinfree_TwoRDM.' + str(irdm+1)
temp_dm = read_neci_two_pdm(self, dm_filename, norb,
self.scratchDirectory)
two_pdm += (self.state_weights[irdm]/norm)*temp_dm
one_pdm = one_from_two_pdm(two_pdm, nelectrons)
return one_pdm, two_pdm
示例3: kernel
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def kernel(self, h1e, eri, norb, nelec, fci_restart=None, ecore=0, **kwargs):
if fci_restart is None:
fci_restart = self.restart
if isinstance(nelec, (int, numpy.integer)):
neleca = nelec//2 + nelec%2
nelecb = nelec - neleca
else:
neleca, nelecb = nelec
write_integrals_file(h1e, eri, norb, neleca, nelecb, self, ecore)
if self.generate_neci_input:
write_fciqmc_config_file(self, neleca, nelecb, fci_restart)
if self.verbose >= logger.DEBUG1:
in_file = self.configFile
logger.debug1(self, 'FCIQMC Input file')
logger.debug1(self, open(in_file, 'r').read())
execute_fciqmc(self)
if self.verbose >= logger.DEBUG1:
out_file = self.outputFileCurrent
with open(out_file) as f:
logger.debug1(self, f.read())
rdm_energy = read_energy(self)
return rdm_energy, None
示例4: make_rdm12_forSQA
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def make_rdm12_forSQA(self, state, norb, nelec, link_index=None, **kwargs):
nelectrons = 0
if isinstance(nelec, (int, numpy.integer)):
nelectrons = nelec
else:
nelectrons = nelec[0] + nelec[1]
# The 2RDMs written by "SHCIrdm::saveRDM" in DICE
# are written as E2[i1,j2,k1,l2]
# and stored here as E2[i1,k1,j2,l2] (for PySCF purposes)
# This is NOT done with SQA in mind.
twopdm = numpy.zeros((norb, norb, norb, norb))
file2pdm = "spatialRDM.%d.%d.txt" % (state, state)
r2RDM(twopdm, norb, os.path.join(self.scratchDirectory, file2pdm).endcode())
twopdm = twopdm.transpose(0, 2, 1, 3)
# (This is coherent with previous statement about indexes)
onepdm = numpy.einsum("ijkj->ki", twopdm)
onepdm /= nelectrons - 1
return onepdm, twopdm
示例5: make_rdm1
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def make_rdm1(civec, norb, nelec, link_index=None):
if isinstance(nelec, (int, numpy.integer)):
nelecb = nelec//2
neleca = nelec - nelecb
else:
neleca, nelecb = nelec
assert(neleca == nelecb)
if link_index is None:
link_index = cistring.gen_linkstr_index(range(norb), neleca)
na = cistring.num_strings(norb, neleca)
t1 = numpy.zeros((norb,na))
#:for str0, tab in enumerate(link_index):
#: for a, i, str1, sign in tab:
#: if a == i:
#: t1[i,str1] += civec[str0]
link1 = link_index[link_index[:,:,0] == link_index[:,:,1]].reshape(na,-1,4)
t1[link1[:,:,1],link1[:,:,2]] = civec[:,None]
dm1 = numpy.diag(numpy.einsum('ip,p->i', t1, civec)) * 2
return dm1
示例6: kernel
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def kernel(self, h1e, eri, norb, nelec, ci0=None, ecore=0, **kwargs):
if isinstance(nelec, (int, numpy.integer)):
nelecb = nelec//2
neleca = nelec - nelecb
else:
neleca, nelecb = nelec
h2e = self.absorb_h1e(h1e, eri, norb, nelec, .5)
h2e = ao2mo.restore(1, h2e, norb)
hdiag = self.make_hdiag(h1e, eri, norb, nelec)
nroots = 1
if ci0 is None:
ci0 = self.get_init_guess(norb, nelec, nroots, hdiag)
def hop(c):
return self.contract_2e(h2e, c, norb, nelec)
precond = lambda x, e, *args: x/(hdiag-e+1e-4)
e, c = lib.davidson(hop, ci0, precond, **kwargs)
return e+ecore, c
示例7: build
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def build(self, mol=None):
if mol is None: mol = self.mol
if mol.symmetry:
for irname in self.irrep_nelec:
if irname not in self.mol.irrep_name:
logger.warn(self, 'No irrep %s', irname)
fix_na, fix_nb = check_irrep_nelec(mol, self.irrep_nelec, self.nelec)[:2]
alpha_open = beta_open = False
for ne in self.irrep_nelec.values():
if not isinstance(ne, (int, numpy.integer)):
alpha_open |= ne[0] > ne[1]
beta_open |= ne[0] < ne[1]
frozen_spin = fix_na - fix_nb
if ((alpha_open and beta_open) or
(0 < mol.spin < frozen_spin) or (frozen_spin < 0 < mol.spin) or
(frozen_spin < mol.spin < 0) or (mol.spin < 0 < frozen_spin)):
raise ValueError('Low-spin configuration was found in '
'the irrep_nelec input. ROHF does not '
'support low-spin configuration.')
return hf.RHF.build(self, mol)
示例8: trans_rdm12
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def trans_rdm12(self, statebra, stateket, norb, nelec, link_index=None, **kwargs):
nelectrons = 0
if isinstance(nelec, (int, numpy.integer)):
nelectrons = nelec
else:
nelectrons = nelec[0] + nelec[1]
writeSHCIConfFile(self, nelec, True)
executeSHCI(self)
# The 2RDMs written by "SHCIrdm::saveRDM" in DICE
# are written as E2[i1,j2,k1,l2]
# and stored here as E2[i1,k1,j2,l2] (for PySCF purposes)
# This is NOT done with SQA in mind.
twopdm = numpy.zeros((norb, norb, norb, norb))
file2pdm = "spatialRDM.%d.%d.txt" % (statebra, stateket)
r2RDM(twopdm, norb, os.path.join(self.scratchDirectory, file2pdm).endcode())
# (This is coherent with previous statement about indexes)
onepdm = numpy.einsum("ikjj->ki", twopdm)
onepdm /= nelectrons - 1
return onepdm, twopdm
示例9: make_rdm1s
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def make_rdm1s(self, state, norb, nelec, link_index=None, **kwargs):
# Ref: IJQC, 109, 3552 Eq (3)
if isinstance(nelec, (int, numpy.integer)):
nelecb = (nelec-self.spin) // 2
neleca = nelec - nelecb
else :
neleca, nelecb = nelec
# DO NOT call self.make_rdm12. Calling DMRGCI.make_rdm12 instead of
# self.make_rdm12 because self.make_rdm12 may be modified
# by state-average mcscf solver (see function mcscf.addons.state_average).
# When calling make_rdm1s from state-average FCI solver,
# DMRGCI.make_rdm12 ensures that the basic make_rdm12 method is called.
# (Issue https://github.com/pyscf/pyscf/issues/335)
dm1, dm2 = DMRGCI.make_rdm12(self, state, norb, nelec, link_index, **kwargs)
dm1n = (2-(neleca+nelecb)/2.) * dm1 - numpy.einsum('pkkq->pq', dm2)
dm1n *= 1./(neleca-nelecb+1)
dm1a, dm1b = (dm1+dm1n)*.5, (dm1-dm1n)*.5
return dm1a, dm1b
示例10: make_rdm12
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def make_rdm12(self, state, norb, nelec, link_index=None, **kwargs):
nelectrons = 0
if isinstance(nelec, (int, numpy.integer)):
nelectrons = nelec
else:
nelectrons = nelec[0]+nelec[1]
# The 2RDMs written by "save_spatial_twopdm_text" in BLOCK and STACKBLOCK
# are written as E2[i1,j2,k2,l1]
# and stored here as E2[i1,l1,j2,k2] (for PySCF purposes)
# This is NOT done with SQA in mind.
twopdm = numpy.zeros( (norb, norb, norb, norb) )
file2pdm = "spatial_twopdm.%d.%d.txt" %(state, state)
with open(os.path.join(self.scratchDirectory, "node0", file2pdm), "r") as f:
norb_read = int(f.readline().split()[0])
assert(norb_read == norb)
for line in f:
linesp = line.split()
i, k, l, j = [int(x) for x in linesp[:4]]
twopdm[i,j,k,l] = 2.0 * float(linesp[4])
# (This is coherent with previous statement about indexes)
onepdm = numpy.einsum('ikjj->ki', twopdm)
onepdm /= (nelectrons-1)
return onepdm, twopdm
示例11: get_nocc
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def get_nocc(mp):
if mp._nocc is not None:
return mp._nocc
elif mp.frozen is None:
nocc = numpy.count_nonzero(mp.mo_occ > 0)
assert(nocc > 0)
return nocc
elif isinstance(mp.frozen, (int, numpy.integer)):
nocc = numpy.count_nonzero(mp.mo_occ > 0) - mp.frozen
assert(nocc > 0)
return nocc
elif isinstance(mp.frozen[0], (int, numpy.integer)):
occ_idx = mp.mo_occ > 0
occ_idx[list(mp.frozen)] = False
nocc = numpy.count_nonzero(occ_idx)
assert(nocc > 0)
return nocc
else:
raise NotImplementedError
示例12: get_frozen_mask
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def get_frozen_mask(mp):
'''Get boolean mask for the restricted reference orbitals.
In the returned boolean (mask) array of frozen orbital indices, the
element is False if it corresonds to the frozen orbital.
'''
moidx = numpy.ones(mp.mo_occ.size, dtype=numpy.bool)
if mp._nmo is not None:
moidx[mp._nmo:] = False
elif mp.frozen is None:
pass
elif isinstance(mp.frozen, (int, numpy.integer)):
moidx[:mp.frozen] = False
elif len(mp.frozen) > 0:
moidx[list(mp.frozen)] = False
else:
raise NotImplementedError
return moidx
示例13: get_nocc
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def get_nocc(mp):
frozen = mp.frozen
if mp._nocc is not None:
return mp._nocc
elif frozen is None:
nocca = numpy.count_nonzero(mp.mo_occ[0] > 0)
noccb = numpy.count_nonzero(mp.mo_occ[1] > 0)
elif isinstance(frozen, (int, numpy.integer)):
nocca = numpy.count_nonzero(mp.mo_occ[0] > 0) - frozen
noccb = numpy.count_nonzero(mp.mo_occ[1] > 0) - frozen
#assert(nocca > 0 and noccb > 0)
elif isinstance(frozen[0], (int, numpy.integer, list, numpy.ndarray)):
if len(frozen) > 0 and isinstance(frozen[0], (int, numpy.integer)):
# The same frozen orbital indices for alpha and beta orbitals
frozen = [frozen, frozen]
occidxa = mp.mo_occ[0] > 0
occidxa[list(frozen[0])] = False
occidxb = mp.mo_occ[1] > 0
occidxb[list(frozen[1])] = False
nocca = numpy.count_nonzero(occidxa)
noccb = numpy.count_nonzero(occidxb)
else:
raise NotImplementedError
return nocca, noccb
示例14: get_nmo
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def get_nmo(mp):
frozen = mp.frozen
if mp._nmo is not None:
return mp._nmo
elif frozen is None:
nmoa = mp.mo_occ[0].size
nmob = mp.mo_occ[1].size
elif isinstance(frozen, (int, numpy.integer)):
nmoa = mp.mo_occ[0].size - frozen
nmob = mp.mo_occ[1].size - frozen
elif isinstance(frozen[0], (int, numpy.integer, list, numpy.ndarray)):
if isinstance(frozen[0], (int, numpy.integer)):
frozen = (frozen, frozen)
nmoa = len(mp.mo_occ[0]) - len(set(frozen[0]))
nmob = len(mp.mo_occ[1]) - len(set(frozen[1]))
else:
raise NotImplementedError
return nmoa, nmob
示例15: make_hdiag
# 需要导入模块: import numpy [as 别名]
# 或者: from numpy import integer [as 别名]
def make_hdiag(h1e, g2e, ci_strs, norb, nelec):
if isinstance(nelec, (int, numpy.integer)):
nelecb = nelec//2
neleca = nelec - nelecb
else:
neleca, nelecb = nelec
strsa, strsb = ci_strs
strsa = numpy.asarray(strsa)
strsb = numpy.asarray(strsb)
occslista = [[i for i in range(norb) if str0 & (1<<i)] for str0 in strsa]
occslistb = [[i for i in range(norb) if str0 & (1<<i)] for str0 in strsb]
g2e = ao2mo.restore(1, g2e, norb)
diagj = numpy.einsum('iijj->ij',g2e)
diagk = numpy.einsum('ijji->ij',g2e)
hdiag = []
for aocc in occslista:
for bocc in occslistb:
e1 = h1e[aocc,aocc].sum() + h1e[bocc,bocc].sum()
e2 = diagj[aocc][:,aocc].sum() + diagj[aocc][:,bocc].sum() \
+ diagj[bocc][:,aocc].sum() + diagj[bocc][:,bocc].sum() \
- diagk[aocc][:,aocc].sum() - diagk[bocc][:,bocc].sum()
hdiag.append(e1 + e2*.5)
return numpy.array(hdiag)