Python代码解析:实体得分排序与DataFrame转换
score = self.test_one_step(data1)
y = np.argsort(score) # score.argsort()
score1 = score[y][:, None]
y = y[:, None]
result = np.concatenate((y, score1), axis=1)
result = pd.DataFrame(data=result, columns=['entity', 'score'])
result['entity'] = result['entity'].astype('int64')
这段代码的作用是对输入的数据 data1 进行一次测试,得到每个实体的得分 score,然后将得分从小到大排序,得到排名 y。接着将排名和得分合并成一个二维数组 result,并将其转换为 pandas 的 DataFrame 格式。最后将 result 中的实体列 entity 的数据类型转换为 int64。
代码解释:
score = self.test_one_step(data1): 调用self对象的test_one_step方法,对输入的数据data1进行一次测试,得到每个实体的得分score。y = np.argsort(score): 对得分score进行排序,返回排序后每个得分在原数组中的下标索引,即排名y。score1 = score[y][:, None]: 根据排名y,将得分score按照排名顺序重新排列,并将其转换为列向量形式。y = y[:, None]: 将排名y也转换为列向量形式。result = np.concatenate((y, score1), axis=1): 将排名y和得分score1按列方向合并成一个二维数组result。result = pd.DataFrame(data=result, columns=['entity', 'score']): 将二维数组result转换为 pandas 的 DataFrame 格式,并给列命名为 'entity' 和 'score'。result['entity'] = result['entity'].astype('int64'): 将实体列entity的数据类型转换为int64。
原文地址: https://www.cveoy.top/t/topic/jk8U 著作权归作者所有。请勿转载和采集!