本文整理汇总了Python中scipy.argsort函数的典型用法代码示例。如果您正苦于以下问题:Python argsort函数的具体用法?Python argsort怎么用?Python argsort使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了argsort函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: plot_median_errors
def plot_median_errors(RefinementLevels):
for i in RefinementLevels[0].cases:
x =[];
y =[];
print "Analyzing median error on: ", i ;
for r in RefinementLevels:
x.append(r.LUT.D_dim*r.LUT.P_dim)
r.get_REL_ERR_SU2(i)
y.append(r.SU2[i].median_ERR*100)
x = sp.array(x)
y = sp.array(y)
y = y[sp.argsort(x)]
x = x[sp.argsort(x)]
LHM = sp.ones((len(x),2))
RHS = sp.ones((len(x),1))
LHM[:,1] = sp.log10(x)
RHS[:,0] = sp.log10(y)
sols = sp.linalg.lstsq(LHM,RHS)
b = -sols[0][1]
plt.loglog(x,y, label='%s, %s'%(i,r'$O(\frac{1}{N})^{%s}$'%str(sp.around(b,2))), basex=10, basey=10, \
subsy=sp.linspace(10**(-5), 10**(-2),20),\
subsx=sp.linspace(10**(2), 10**(5),50))
#for r in RefinementLevels:
# x.append(r.LUT.D_dim*r.LUT.P_dim)
# r.get_REL_ERR_SciPy(i)
# y.append(r.SciPy[i].median_ERR*100)
#plt.plot(x,y, label='SciPy: %s'%i)
plt.grid(which='both')
plt.xlabel('Grid Nodes (N)')
plt.ylabel('Median relative error [%]')
return;
示例2: my_bh_fdr
def my_bh_fdr(p_val_vec):
index = scipy.argsort(p_val_vec)
exp_err = scipy.vstack((float(len(p_val_vec))/scipy.arange(1,len(p_val_vec) + 1)*p_val_vec[index],
scipy.tile(1, [1, len(p_val_vec)]))).min(axis = 0)
exp_err = scipy.vstack((exp_err,exp_err[scipy.r_[0,scipy.arange(len(exp_err)-1)]])).max(axis=0)
#scipy.r_[index[0], index[range(len(index)-1)]
resort_index = scipy.argsort(index)
return exp_err[resort_index]
示例3: outputTargetSimPairs
def outputTargetSimPairs(self, pairFile):
pairList = []
pairFilehandle = open(pairFile)
for line in pairFilehandle:
words = (line.strip().strip('\n').strip()).split()
pairList.append(words)
pairFilehandle.close()
print "..Outputting similarities"
outputFilename = "simPairs.txt"
outputFilehandle = open(outputFilename, "w")
outputFilehandle.write("word1 word2 sim | zsim1 zsim2 | psim1 psim2 | nIn1 nIn2\n")
numTargets = len(self.similarityMatrix[0])
for pair in pairList:
if ((pair[0] in self.targetDict) and (pair[1] in self.targetDict)):
i = self.targetDict[pair[0]]
j = self.targetDict[pair[1]]
sim = self.similarityMatrix[i,j]
word0Sims = self.similarityMatrix[i]
word1Sims = self.similarityMatrix[j]
z0Sim = (sim - word0Sims.mean()) / word0Sims.std()
z1Sim = (sim - word1Sims.mean()) / word1Sims.std()
sim0min = np.amin(word0Sims)
sim1min = np.amin(word1Sims)
adjSim0 = sim + abs(sim0min)
adjSim1 = sim + abs(sim1min)
adjSimVector0 = word0Sims + abs(sim0min)
adjSimVector1 = word1Sims + abs(sim1min)
sim0Sum = adjSimVector0.sum()
sim1Sum = adjSimVector1.sum()
p0Sim = adjSim0 / sim0Sum
p1Sim = adjSim1 / sim1Sum
sortedIndexes0 = scipy.argsort(word0Sims)
sortedIndexes1 = scipy.argsort(word1Sims)
for k in range(numTargets):
if sortedIndexes0[k] == j:
nIn0 = numTargets - k
break
for k in range(numTargets):
if sortedIndexes1[k] == i:
nIn1 = numTargets - k
break
outputFilehandle.write("%s %s %0.3f | %0.3f %0.3f | %0.5f %0.5f | %0.0f %0.0f\n" % (pair[0], pair[1], sim, z0Sim, z1Sim, p0Sim, p1Sim, nIn0, nIn1))
else:
outputFilehandle.write("%s %s NA NA NA NA NA NA NA\n" % (pair[0], pair[1]))
示例4: plot_overlap_ps
def plot_overlap_ps(result_file, ss_file='/Users/bjarnivilhjalmsson/data/GIANT/GIANT_HEIGHT_Wood_et_al_2014_publicrelease_HapMapCeuFreq.txt',
fig_filename='/Users/bjarnivilhjalmsson/data/tmp/manhattan_combPC_HGT.png', method='combPC',
ylabel='Comb. PC (HIP,WC,HGT,BMI) $-log_{10}(P$-value$)$', xlabel='Height $-log_{10}(P$-value$)$', p_thres=0.00001):
# Parse results ans SS file
res_table = pandas.read_table(result_file)
ss_table = pandas.read_table(ss_file)
# Parse
res_sids = sp.array(res_table['SNPid'])
if method == 'MVT':
comb_ps = sp.array(res_table['pval'])
elif method == 'combPC':
comb_ps = sp.array(res_table['combPC'])
if 'MarkerName' in ss_table.keys():
ss_sids = sp.array(ss_table['MarkerName'])
elif 'SNP' in ss_table.keys():
ss_sids = sp.array(ss_table['SNP'])
else:
raise Exception("Don't know where to look for rs IDs")
marg_ps = sp.array(ss_table['p'])
# Filtering boring p-values
res_p_filter = comb_ps < p_thres
res_sids = res_sids[res_p_filter]
comb_ps = comb_ps[res_p_filter]
# ss_p_filter = marg_ps<p_thres
# ss_sids = ss_sids[ss_p_filter]
# marg_ps = marg_ps[ss_p_filter]
common_sids = sp.intersect1d(res_sids, ss_sids)
print 'Found %d SNPs in common' % (len(common_sids))
ss_filter = sp.in1d(ss_sids, common_sids)
res_filter = sp.in1d(res_sids, common_sids)
ss_sids = ss_sids[ss_filter]
res_sids = res_sids[res_filter]
marg_ps = marg_ps[ss_filter]
comb_ps = comb_ps[res_filter]
print 'Now sorting'
ss_index = sp.argsort(ss_sids)
res_index = sp.argsort(res_sids)
marg_ps = -sp.log10(marg_ps[ss_index])
comb_ps = -sp.log10(comb_ps[res_index])
with plt.style.context('fivethirtyeight'):
plt.plot(marg_ps, comb_ps, 'b.', alpha=0.2)
(x_min, x_max) = plt.xlim()
(y_min, y_max) = plt.ylim()
plt.plot([x_min, x_max], [y_min, y_max], 'k--', alpha=0.2)
plt.ylabel(ylabel)
plt.xlabel(xlabel)
plt.tight_layout()
plt.savefig(fig_filename)
plt.clf()
示例5: plotBias
def plotBias(vals, fn_plot, myidx, logScale = False, refname = 'TCGA'):
iqr = ( (sp.percentile(vals[~myidx],75) - sp.percentile(vals[~myidx],25) ) * 1.5)
iqr2 = ( (sp.percentile(vals[myidx],75) - sp.percentile(vals[myidx],25) ) * 1.5)
sidx = sp.argsort(vals)
vals = vals[sidx]
myidx = myidx[sidx]
fig = plt.figure(figsize=(12,10))
ax = fig.add_subplot(111)
ax_c = ax.twinx()
ax.vlines(sp.array(sp.arange(sp.sum(vals.shape[0])))[myidx],[0], vals[myidx], label = '%s Reference'%refname)
ax.vlines(sp.array(sp.arange(sp.sum(vals.shape[0])))[~myidx],[0], vals[~myidx], color = 'r', label = 'Your Samples')
ax.plot([0,vals.shape[0]],[3,3], '--', color = 'green')
ax.plot([0,vals.shape[0]],[5,5] , '--',color = 'green')
ax.plot([0,vals.shape[0]],[iqr + sp.percentile(vals[~myidx], 75),iqr + sp.percentile(vals[~myidx], 75)], '--',color = 'green')
ax.plot([0,vals.shape[0]],[iqr2 + sp.percentile(vals[myidx], 75),iqr2 + sp.percentile(vals[myidx], 75)], '--',color = 'green')
# ax.plot([0,vals.shape[0]],[6.25,6.25],'--', color = 'green')
ax.plot([0,vals.shape[0]],[10,10] , '--',color = 'green')
ax.set_ylabel('Median 3\'/5\' Bias')
ax.set_xlim(0,vals.shape[0])
if logScale:
ax.set_yscale('log')
ax_c.set_yscale('log')
ax_c.set_ylim(ax.get_ylim())
### add right side ticks
if logScale:
tick_thresholds = sp.array([3,5,iqr+sp.percentile(vals[~myidx],75),iqr2 + sp.percentile(vals[myidx], 75), 10])#sp.array(sp.log([3,5,iqr+sp.percentile(vals,75), 10, 50]))
else:
tick_thresholds = sp.array([3,5,iqr+sp.percentile(vals[~myidx],75),iqr2 + sp.percentile(vals[myidx], 75), 10])
tick_idx = sp.argsort(tick_thresholds)
tick_thresholds = tick_thresholds[tick_idx]
tick_thresholds = sp.around(tick_thresholds, decimals = 2)
ax_c.set_yticks(tick_thresholds)
tick_thresholds = tick_thresholds.astype('|S4')
tick_thresholds = tick_thresholds.astype('|S50')
tick_thresholds[tick_idx == 2] = tick_thresholds[tick_idx == 2][0] + ' (Your Filter)'
# tick_thresholds[tick_idx == 3] = tick_thresholds[tick_idx == 3][0] + ' (PRAD Filter)'
tick_thresholds[tick_idx == 3] = tick_thresholds[tick_idx == 3][0] + ' (%s Filter)'%(refname)
ax_c.set_yticklabels(tick_thresholds)
ax.grid()
ax.legend(loc=2)
plt.tight_layout()
plt.savefig(fn_plot, dpi = 300)
plt.clf()
示例6: _query
def _query(self,lv,k=None):
if (k==None):
k=self.k
if (type(lv)!=numpy.ndarray):
lv=numpy.array(lv)
if (lv.ndim==1):
lv=lv.reshape(1,lv.shape[0])
if (lv.shape[0]==1):
dt=abs(self.va.reshape(self.va.shape[0],1)-lv).T
dr=scipy.argsort(dt)[0,:k]
return numpy.vectorize(lambda x:self.va[x])(dr).reshape(1,k)
else:
dt=scipy.spatial.distance.cdist(lv,self.va.reshape(self.va.shape[0],1))
dr=scipy.argsort(dt)[:,:k]
return numpy.vectorize(lambda x:self.va[x])(dr)
示例7: _get_model_cv_preds
def _get_model_cv_preds(self, model, X_train, y_train, cache_file):
"""
Return cross-validation predictions on the training set, using cache
if possible.
This is used if stacking is enabled (ie. a second model is used to
combine the stage 0 predictions).
"""
stack_preds = load_from_cache(
"models/%s/cv_preds/%s.pkl" % (self.cache_dir, cache_file),
self.use_cached_models)
if stack_preds is None:
kfold = cross_validation.StratifiedKFold(y_train, 4)
stack_preds = []
indexes_cv = []
for stage0, stack in kfold:
model.fit(X_train[stage0], y_train[stage0])
stack_preds.extend(list(model.predict_proba(
X_train[stack])[:, 1]))
indexes_cv.extend(list(stack))
stack_preds = np.array(stack_preds)[sp.argsort(indexes_cv)]
with open("cache/models/%s/cv_preds/%s%d.pkl" % (
self.cache_dir, cache_file), 'wb') as f:
pickle.dump(stack_preds, f, pickle.HIGHEST_PROTOCOL)
return stack_preds
示例8: find
def find(x, v, next_largest=1, indices=None):
"""Returns the index into the 1D array x corresponding to the
element of x that is either equal to v or the nearest to
v. x is assumed to contain unique elements.
if v is outside the range of values in x then the index of the
smallest or largest element of x is returned.
If next_largest == 1 then the nearest element taken is the next
largest, otherwise if next_largest == 0 then the next smallest
is taken.
The optional argument indices speeds up multiple calls to this
function if you pre-calculate indices=argsort(x).
"""
if indices is None:
indices=argsort(x)
xs=take(x, indices)
assert next_largest in [0,1], "next_largest must be 0 or 1"
eqmask=(xs==v).tolist()
try:
ix = eqmask.index(1)
except ValueError:
if next_largest:
mask=(xs<v).tolist()
else:
mask=(xs>v).tolist()
try:
ix=min([max([0,mask.index(1-next_largest)+next_largest-1]),len(mask)-1])
except ValueError:
ix = 0+next_largest-1
return indices[ix]
示例9: eigsort
def eigsort(eigresult):
"""
Sort the output of scipy.linalg.eig() in terms of
eignevalue magnitude
"""
ix = sp.argsort(abs(eigresult[0]))
return ( eigresult[0][ix], eigresult[1][:,ix] )
示例10: remove_isolated_clusters
def remove_isolated_clusters(conns, nonzero_locs, num_to_keep):
r"""
Identifies and removes all disconnected clusters except the number of
groups specified by "num_to_keep". num_to_keep=N retains the N largest
clusters
"""
#
adj_mat = generate_adjacency_matrix(conns, nonzero_locs)
#
logger.info('determining connected components...')
cs_ids = csgraph.connected_components(csgraph=adj_mat, directed=False)[1]
groups, counts = sp.unique(cs_ids, return_counts=True)
order = sp.argsort(counts)[::-1]
groups = groups[order]
counts = counts[order]
#
msg = ' {} component groups for {} total nodes'
logger.debug(msg.format(groups.size, cs_ids.size))
msg = ' largest group number: {}, size {}'
logger.debug(msg.format(groups[0], counts[0]))
msg = ' {} % of nodes contained in largest group'
logger.debug(msg.format(counts[0]/cs_ids.size*100))
msg = ' {} % of nodes contained in {} retained groups'
num = sp.sum(counts[0:num_to_keep])/cs_ids.size*100
logger.debug(msg.format(num, num_to_keep))
#
inds = sp.where(sp.in1d(cs_ids, groups[0:num_to_keep]))[0]
num = nonzero_locs.size
nonzero_locs = nonzero_locs[inds]
msg = ' removed {} disconnected nodes'
logger.debug(msg.format(num - nonzero_locs.size))
#
return nonzero_locs
示例11: readAnnotationFile
def readAnnotationFile(fn, format='gaf'):
### get list of overlapping genes
overlapgenes = getOverlapGenes(fn, format)
### reading in gaf
data = readinganno(fn, overlapgenes, format)
uqgid = data.keys() ### unique gene ids
newdata = []
for gid in uqgid:
### process transcripts
if len(data[gid]) == 1:
temp = processSingleTranscriptGenes(data[gid])
else:
temp = processMultiTranscriptGenes(data[gid])
### make sure it has been processed correctly
if temp is None:
continue
else:
temp.extend([gid])
newdata.append(temp)
newdata = sp.array(newdata)
sidx = sp.argsort(newdata[:,5])
newdata = newdata[sidx,:]
### filter gene with no name
return sp.array(newdata)
示例12: _get_model_cv_preds
def _get_model_cv_preds(self, model, X_train, y_train):
"""
Return cross-validation predictions on the training set
"""
fname = self._get_model_cv_fname(model, X_train, y_train, self.n_folds_stack)
try:
logger.debug("trying to load cv_pred from %s", fname)
with open(fname,"rb") as f:
stack_preds = pickle.load(f)
except IOError:
logger.debug("not found: %s", fname)
stack_preds = None
if stack_preds is None:
kfold = cross_validation.StratifiedKFold(y_train, self.n_folds_stack)
stack_preds = []
indexes_cv = []
for stage0, stack in kfold:
model.fit(X_train[stage0], y_train[stage0])
stack_preds.extend(list(model.predict_proba(
X_train[stack])[:, 1]))
indexes_cv.extend(list(stack))
stack_preds = np.array(stack_preds)[sp.argsort(indexes_cv)]
with open(fname,"wb") as f:
pickle.dump(stack_preds,f)
if self.use_logit and self.gnrl=='LR':
logger.debug('transform stack_preds(%s) using logit',stack_preds.shape)
stack_preds = logit(stack_preds)
return stack_preds
示例13: nms
def nms(boxes, T = 0.5):
if len(boxes) == 0:
return []
boxes = boxes.astype("float")
pick = []
x1 = boxes[:,0]
y1 = boxes[:,1]
x2 = boxes[:,2]
y2 = boxes[:,3]
area = (x2 - x1 + 1) * (y2 - y1 + 1)
idxs = sp.argsort(y2)
while len(idxs) > 0:
last = len(idxs) - 1
i = idxs[last]
pick.append(i)
xx1 = sp.maximum(x1[i], x1[idxs[:last]])
yy1 = sp.maximum(y1[i], y1[idxs[:last]])
xx2 = sp.minimum(x2[i], x2[idxs[:last]])
yy2 = sp.minimum(y2[i], y2[idxs[:last]])
w = sp.maximum(0, xx2 - xx1 + 1)
h = sp.maximum(0, yy2 - yy1 + 1)
I = w * h
#overlap_ratio = I / area[idxs[:last]]
overlap_ratio = I /(area[i] + area[idxs[:last]] - I)
idxs = sp.delete(idxs, sp.concatenate(([last], sp.where(overlap_ratio > T)[0])))
return boxes[pick].astype("int")
示例14: apply_flow
def apply_flow(self,flowrate):
r'''
Convert the invaded sequence into an invaded time for a given flow rate
considering the volume of invaded pores and throats.
Parameters
----------
flowrate : float
The flow rate of the injected fluid
Returns
-------
Creates a throat array called 'invasion_time' in the Algorithm
dictionary
'''
P12 = self._net['throat.conns'] # List of throats conns
a = self['throat.invasion_sequence'] # Invasion sequence
b = sp.argsort(self['throat.invasion_sequence'])
P12_inv = self['pore.invasion_sequence'][P12] # Pore invasion sequence
# Find if the connected pores were invaded with or before each throat
P1_inv = P12_inv[:,0] == a
P2_inv = P12_inv[:,1] == a
c = sp.column_stack((P1_inv,P2_inv))
d = sp.sum(c,axis=1,dtype=bool) # List of Pores invaded with each throat
# Find volume of these pores
P12_vol = sp.zeros((self.Nt,))
P12_vol[d] = self._net['pore.volume'][P12[c]]
# Add invaded throat volume to pore volume (if invaded)
T_vol = P12_vol + self._net['throat.volume']
# Cumulative sum on the sorted throats gives cumulated inject volume
e = sp.cumsum(T_vol[b]/flowrate)
t = sp.zeros((self.Nt,))
t[b] = e # Convert back to original order
self._phase['throat.invasion_time'] = t
示例15: writeTopXGenes2File
def writeTopXGenes2File(filename,sqlfile,outdir,top=1000):
f = h5py.File(filename,'r')
chromosomes = f['chromosomes'][:]
positions = f['positions'][:]
p_values = f['p_values'][:].flatten()
name = f['phenotype_name'].value.replace(" ","_").replace("<i>","").replace("</i>","")
ind = sp.argsort(p_values)[:-1]
chromosomes = chromosomes[ind]
positions = positions[ind]
p_values = p_values[ind]
chromosomes = chromosomes[0:top]
positions = positions[0:top]
p_values = p_values[0:top]
f.close()
sqlite = sqlite3.connect(sqlfile)
sqlite_cursor = sqlite.cursor()
out = open(os.path.join(outdir,name + ".csv"),"w")
out.write("Chr,Pos,PVal,GeneID (closest),Distance (bp)\n")
for i in xrange(chromosomes.shape[0]):
sqlite_cursor.execute("SELECT * FROM geneannotation WHERE chromosome_id=? ORDER BY ABS(annotation_start - ?) LIMIT 1",(str(chromosomes[i]),int(positions[i])))
annotation = sqlite_cursor.fetchall()
#print annotation
if len(annotation)==1:
if positions[i] >= annotation[0][3] and positions[i] <= annotation[0][4]:
distance = 0
elif positions[i] > annotation[0][4]:
distance = abs(positions[i]-annotation[0][4])
else:
distance = abs(positions[i]-annotation[0][3])
out.write(chromosomes[i] + "," + str(int(positions[i])) + ",%.2e"%(p_values[i]) + "," + annotation[0][1] + "," + str(int(distance)) + "\n")
sqlite.close()