예제 #1
0
def selectRowsForCmat( P , c , seed=None):
	# Plen=P.__len__()
	C_sel=set()
	selected = 0
	while C_sel.__len__() < c :
		C_sel.add(ml.getRandomFromDist(P))
	return(C_sel)
예제 #2
0
def computePvectForRows(fname, beta=1):#, header=True, rowLabels=True) : 
	columns,rows = ml.data_size(fname)
	ARowMags = [0]*rows
	P = [0]*rows
	with open(fname,'rb') as f : 
		reader=csv.reader(f,delimiter=' ')
		for j,row in enumerate(reader) : 
			if j!=0 : 
				# print(j)
				j -= 1 	
				for i,value in enumerate(row) :
					if i!=0: 
						ARowMags[j] += float(value)**2
	# print(ARowMags)
	ARowMagsSum= sum(ARowMags) 
	for k in range(rows):
		P[k]=  beta*ARowMags[k]/( ARowMagsSum ) 
	return(P)
예제 #3
0
def buildCfromA(fname, c, beta=1 ) :
	cols,rows= ml.data_size(fname)
	P=computePvectForRows(fname, beta=1)#, header=True, rowLabels=True)
	print('Pvector done computing')
	C_sel = selectRowsForCmat(P, c)
	print('c rows selected')
	C=np.zeros([c,cols])
	with open(fname,'rb') as f : 
		reader=csv.reader(f,delimiter=' ')
		cnt=0
		for j,row in enumerate(reader) : 
			# print(row)
			if j==0 :
				pass 
			elif j-1 in C_sel :
				# print(C[cnt,:])
				# print(row[1:]) 
				C[cnt,:]=(row[1:])
				cnt+=1
		return(C)