冒号后面是建议传入的参数类型
箭头后面是建议函数返回的类型
注意都是建议,不是强制。主要为了提高代码可读性。
def mtx_similar1(arr1:np.ndarray, arr2:np.ndarray) ->float: ''' 计算矩阵相似度的一种方法。将矩阵展平成向量,计算向量的乘积除以模长。 注意有展平操作。 :param arr1:矩阵1 :param arr2:矩阵2 :return:实际是夹角的余弦值,ret = (cos+1)/2 ''' farr1 = arr1.ravel() farr2 = arr2.ravel() len1 = len(farr1) len2 = len(farr2) if len1 > len2: farr1 = farr1[:len2] else: farr2 = farr2[:len1] numer = np.sum(farr1 * farr2) denom = np.sqrt(np.sum(farr1**2) * np.sum(farr2**2)) similar = numer / denom # 这实际是夹角的余弦值 return (similar+1) / 2 # 姑且把余弦函数当线性