本文整理匯總了Python中random.sample方法的典型用法代碼示例。如果您正苦於以下問題:Python random.sample方法的具體用法?Python random.sample怎麽用?Python random.sample使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類random
的用法示例。
在下文中一共展示了random.sample方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: getToMatchWithSampling
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def getToMatchWithSampling(self):
readIDs = set()
logging.info(" exceeded number of reads required to begin sampling; performing sampling")
for region in self.regions:
for read in self.loadRegion(region.chr(), region.start(), region.end()):
readIDs.add(read.qname)
readIDs = random.sample(readIDs, self.sampleReads)
tomatch = set()
readsByID = collections.defaultdict(ReadSet)
for region in self.regions:
for read in self.loadRegion(region.chr(), region.start(), region.end()):
if read.qname in readIDs:
tomatch.add(read)
readsByID[read.qname].add(read)
return tomatch, readsByID
示例2: get_samples
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def get_samples(root_paths, samples):
"""
Given the root paths of the CAMISIM runs and the subset of samples, returns a dict from sample number to folders
Assumes the sample folders to be in the format YYYY.MM.DD_HH.MM.SS_sample_#
"""
used_samples = {}
for path in root_paths:
if not os.path.exists(path):
raise IOError("No such file or directory: %s" % path)
files = os.listdir(path)
for f in files:
try:
date, time, sample, nr = f.split("_")
except ValueError:
continue
if samples is None or int(nr) in samples:
if nr in used_samples:
used_samples[nr].append(os.path.join(path,f))
else:
used_samples[nr] = [os.path.join(path,f)]
return used_samples
示例3: merge_bam_files
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def merge_bam_files(bams_per_genome, out, threads):
"""
Merges (+sort +index) all given bam files per genome (exact paths, single sample/multiple runs or multiple samples)
"""
out_path = os.path.join(out,"bam")
os.mkdir(out_path)
for genome in bams_per_genome:
list_of_bam = " ".join(bams_per_genome[genome]) # can be used as input to samtools immediately
header = fix_headers(genome, bams_per_genome[genome], out_path)
if header is not None:
for bam in bams_per_genome[genome]: # add new header to all bam files
cmd = "samtools reheader {header} {bam} >> {out}/out.bam; mv {out}/out.bam {bam}".format(
header = header,
out = out_path,
bam = bam
)
subprocess.call([cmd],shell=True)
cmd = "samtools merge -@ {threads} - {bam_files} | samtools sort -@ {threads} - {path}/{genome}; samtools index {path}/{genome}.bam".format(
threads = threads,
bam_files = list_of_bam,
path = out_path,
genome = genome
)
subprocess.call([cmd],shell=True) # this runs a single command at a time (but that one multi threaded)
return out_path
示例4: rand_indices
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def rand_indices(x, rand_attr):
"""
Function randomly selects features without replacement. It used with random forest. Selected features must have more
than one distinct value.
x: numpy array - dataset
rand_attr - parameter defines number of randomly selected features
"""
loop = True
indices = range(len(x[0]))
while loop:
loop = False
# randomly selected features without replacement
rand_list = random.sample(indices, rand_attr)
for i in rand_list:
if len(np.unique(x[:, i])) == 1:
loop = True
indices.remove(i)
if len(indices) == rand_attr - 1:
return -1 # all features in dataset have one distinct value
break
return rand_list
示例5: remove_n
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def remove_n(self, n):
"""Get n items for removal."""
assert self.init_length + n <= self.cur_size
if self.eviction_strategy == 'rand':
# random removal
idxs = random.sample(xrange(self.init_length, self.cur_size), n)
elif self.eviction_strategy == 'fifo':
# overwrite elements in cyclical fashion
idxs = [
self.init_length +
(self.remove_idx + i) % (self.max_size - self.init_length)
for i in xrange(n)]
self.remove_idx = idxs[-1] + 1 - self.init_length
elif self.eviction_strategy == 'rank':
# remove lowest-priority indices
idxs = np.argpartition(self.priorities, n)[:n]
return idxs
示例6: __getitem__
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def __getitem__(self, index):
bag = self.bag_scope[index]
if self.bag_size > 0:
if self.bag_size <= len(bag):
resize_bag = random.sample(bag, self.bag_size)
else:
resize_bag = bag + list(np.random.choice(bag, self.bag_size - len(bag)))
bag = resize_bag
seqs = None
rel = self.rel2id[self.data[bag[0]]['relation']]
for sent_id in bag:
item = self.data[sent_id]
seq = list(self.tokenizer(item))
if seqs is None:
seqs = []
for i in range(len(seq)):
seqs.append([])
for i in range(len(seq)):
seqs[i].append(seq[i])
for i in range(len(seqs)):
seqs[i] = torch.cat(seqs[i], 0) # (n, L), n is the size of bag
return [rel, self.bag_name[index], len(bag)] + seqs
示例7: reset
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def reset(self):
"""
Logic for sampling a state from the demonstration and resetting
the simulation to that state.
"""
state = self.sample()
if state is None:
# None indicates that a normal env reset should occur
return self.env.reset()
else:
if self.need_xml:
# reset the simulation from the model if necessary
state, xml = state
self.env.reset_from_xml_string(xml)
if isinstance(state, tuple):
state = state[0]
# force simulator state to one from the demo
self.sim.set_state_from_flattened(state)
self.sim.forward()
return self.env._get_observation()
示例8: sample
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def sample(self):
"""
This is the core sampling method. Samples a state from a
demonstration, in accordance with the configuration.
"""
# chooses a sampling scheme randomly based on the mixing ratios
seed = random.uniform(0, 1)
ratio = np.cumsum(self.scheme_ratios)
ratio = ratio > seed
for i, v in enumerate(ratio):
if v:
break
sample_method = getattr(self, self.sample_method_dict[self.sampling_schemes[i]])
return sample_method()
示例9: _uniform_sample
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def _uniform_sample(self):
"""
Sampling method.
First uniformly sample a demonstration from the set of demonstrations.
Then uniformly sample a state from the selected demonstration.
"""
# get a random episode index
ep_ind = random.choice(self.demo_list)
# select a flattened mujoco state uniformly from this episode
states = self.demo_file["data/{}/states".format(ep_ind)].value
state = random.choice(states)
if self.need_xml:
model_xml = self._xml_for_episode_index(ep_ind)
xml = postprocess_model_xml(model_xml)
return state, xml
return state
示例10: build_tree
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def build_tree(train, features, levels=5, numfeatures=100):
'Train a decision tree based on labeled data and features'
if levels == 0:
C1 = Counter([b for _, b in train])
Leaf = (None, C1)
return Leaf
else:
try:
X = (split(train, F) for F in random.sample(features, numfeatures))
H, L1, L2, F = max(X)
M1 = build_tree(L1, features, levels - 1, numfeatures)
M2 = build_tree(L2, features, levels - 1, numfeatures)
Branch = (F, M1, M2)
return Branch
except:
return build_tree(train, features, levels=0)
示例11: train_model
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def train_model(self):
batch = random.sample(self.memory,self.batch_size)
states = np.asarray([e[0] for e in batch])
actions = np.asarray([e[1] for e in batch])
rewards = np.asarray([e[2] for e in batch])
next_states = np.asarray([e[3] for e in batch])
dones = np.asarray([e[4] for e in batch])
target_action_input = self.sess.run(self.target_actor.actor,feed_dict={self.target_actor.state:next_states})
target_q_value = self.sess.run(self.target_critic.critic,feed_dict={self.target_critic.state:next_states,
self.target_critic.action:target_action_input})
targets = np.asarray([r + self.gamma * (1-d) * tv for r,tv,d in zip(rewards,target_q_value,dones)])
self.sess.run(self.ctrain_op,feed_dict=
{
self.critic.state:states,
self.critic.action:actions,
self.target_value:np.squeeze(targets)
})
action_for_train = self.sess.run(self.actor.actor,feed_dict={self.actor.state:states})
self.sess.run(self.atrain_op,feed_dict=
{
self.actor.state:states,
self.critic.state:states,
self.critic.action:action_for_train
})
self.sess.run(self.update_target_soft)
示例12: train_model
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def train_model(self):
minibatch = random.sample(self.memory, self.batch_size)
state = [mini[0] for mini in minibatch]
next_state = [mini[1] for mini in minibatch]
action = [mini[2] for mini in minibatch]
reward = [mini[3] for mini in minibatch]
done = [mini[4] for mini in minibatch]
nextQ = self.sess.run(self.targetNet.Q, feed_dict={self.targetNet.input: next_state})
max_nextQ = np.max(nextQ, axis=1)
targets = [r + self.gamma * (1-d) * mQ for r, d, mQ in zip(reward, done, max_nextQ)]
_, l = self.sess.run([self.train_op, self.loss], feed_dict={self.mainNet.input: state,
self.target: targets,
self.action: action})
return l
示例13: train_model
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def train_model(self):
minibatch = random.sample(self.memory, self.batch_size)
state_stack = [mini[0] for mini in minibatch]
next_state_stack = [mini[1] for mini in minibatch]
action_stack = [mini[2] for mini in minibatch]
reward_stack = [mini[3] for mini in minibatch]
done_stack = [mini[4] for mini in minibatch]
done_stack = [int(i) for i in done_stack]
onehotaction = np.zeros([self.batch_size, self.output_size])
for i, j in zip(onehotaction, action_stack):
i[j] = 1
action_stack = np.stack(onehotaction)
Q_next_state = self.sess.run(self.target_network, feed_dict={self.targetNet.input: next_state_stack})
next_action = np.argmax(np.mean(Q_next_state, axis=2), axis=1)
Q_next_state_next_action = [Q_next_state[i, action, :] for i, action in enumerate(next_action)]
Q_next_state_next_action = np.sort(Q_next_state_next_action)
T_theta = [np.ones(self.num_support) * reward if done else reward + self.gamma * Q for reward, Q, done in
zip(reward_stack, Q_next_state_next_action, done_stack)]
_, l = self.sess.run([self.train_op, self.loss],
feed_dict={self.mainNet.input: state_stack, self.action: action_stack, self.Y: T_theta})
return l
示例14: get_train_data
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def get_train_data(self, batch_size=8):
samples = random.sample(self.train_dict.keys(), batch_size)
texts = [self.train_dict[k][0] for k in samples]
labels = [self.train_dict[k][1] for k in samples]
robust_padding(texts, labels)
maxlen = max(len(t) for t in texts)
text_tensor = torch.zeros(maxlen, batch_size, dtype=torch.long)
for i, text in enumerate(texts):
text_tensor[:, i] = torch.LongTensor([VOCAB.find(c) for c in text])
truth_tensor = torch.zeros(maxlen, batch_size, dtype=torch.long)
for i, label in enumerate(labels):
truth_tensor[:, i] = torch.LongTensor(label)
return text_tensor.to(self.device), truth_tensor.to(self.device)
示例15: get_val_data
# 需要導入模塊: import random [as 別名]
# 或者: from random import sample [as 別名]
def get_val_data(self, batch_size=8, device="cpu"):
keys = random.sample(self.val_dict.keys(), batch_size)
texts = [self.val_dict[k][0] for k in keys]
labels = [self.val_dict[k][1] for k in keys]
maxlen = max(len(s) for s in texts)
texts = [s.ljust(maxlen, " ") for s in texts]
labels = [
numpy.pad(a, (0, maxlen - len(a)), mode="constant", constant_values=0)
for a in labels
]
text_tensor = torch.zeros(maxlen, batch_size, dtype=torch.long)
for i, text in enumerate(texts):
text_tensor[:, i] = torch.LongTensor([VOCAB.find(c) for c in text])
truth_tensor = torch.zeros(maxlen, batch_size, dtype=torch.long)
for i, label in enumerate(labels):
truth_tensor[:, i] = torch.LongTensor(label)
return keys, text_tensor.to(self.device), truth_tensor.to(self.device)