def hichip_add_diagonal(m):
mup=m
mdown=mup.transpose()
mdown.setdiag(0)
mtogether=mup+mdown
sums=mtogether.sum(axis=1)
max_sum=np.max(sums)
to_add=1.0*max_sum-1.0*sums
to_add_values=[]
for i in range(m.shape[0]):
to_add_values.append(to_add[i,0])
mtogether.setdiag(np.array(to_add_values))
D = sps.spdiags(1.0/sums.flatten(), [0], mtogether.get_shape()[0], mtogether.get_shape()[1], format='csr')
return sps.triu(D.dot(mtogether))
评论列表
文章目录