You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多标签多分类任务如何将预测值与真实值并排保存到文件

多标签分类预测结果与真实值并排输出实现方案

问题原因

原有代码连续两次向同一文件写入DataFrame,后写入的内容会直接覆盖已有文件内容,因此只能看到最后一个数组的输出结果。

实现方案

方案1:完全匹配预期的纯文本格式输出

如果需要完全贴合你给出的带分隔符、对齐格式的输出,直接操作文件写入即可,代码如下:

import numpy as np

# 此处y_test、y_pred为你的真实值、预测值二维数组,需保证两者形状一致
n_labels = y_test.shape[1]
save_path = "j:\\compare.txt"

with open(save_path, 'w', encoding='utf-8') as f:
    # 写入表头
    left_header = ''.join([f"{idx:^5}" for idx in range(n_labels)])
    right_header = ''.join([f"{idx:^5}" for idx in range(n_labels)])
    f.write(f"{left_header}  |  {right_header}\n")
    # 写入分割线
    f.write("-" * (len(left_header) + 5 + len(right_header)) + "\n")
    # 逐行写入对比数据
    for test_line, pred_line in zip(y_test, y_pred):
        left_content = ''.join([f"{val:^5}" for val in test_line])
        right_content = ''.join([f"{val:^5}" for val in pred_line])
        f.write(f"{left_content}  |  {right_content}\n")

方案2:CSV格式输出(适合后续数据处理)

如果需要用Excel、pandas等工具后续分析对比结果,可以用横向拼接DataFrame的方式生成结构化的csv文件:

import pandas as pd

# 给真实值、预测值列添加区分前缀
df_test = pd.DataFrame(y_test).add_prefix('test_label_')
df_pred = pd.DataFrame(y_pred).add_prefix('pred_label_')
# 横向拼接两个表
compare_df = pd.concat([df_test, df_pred], axis=1)
# 写入csv,不保存行索引
compare_df.to_csv("j:\\compare.csv", index=False)

内容的提问来源于stack exchange,提问作者asmgx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:45:02