def pearson(mat1, mat2):
"""Root mean square error between two matrices, ignoring zeroes"""
assert mat1.shape == mat2.shape
#convert to vectors
vec1 = mat1.flatten()
vec2 = mat2.flatten()
#remove zeroes
nonzero = [i for i in range(len(vec1)) if vec1[i] != 0 and vec2[i] != 0]
vec1 = vec1[nonzero]
vec2 = vec2[nonzero]
r, p = st.pearsonr(vec1, vec2)
return r
评论列表
文章目录