赞
踩
为了对测试集中的数据和标签进行重新排序,以便它们按照标签从0到6的顺序排列,你需要遵循以下步骤:
在Python中,你可以使用NumPy库来实现这一过程。下面是一段示例代码,展示了如何完成这个任务:
import numpy as np import pandas as pd # 假设 x_test 和 y_test_labels 已经定义并加载了数据 # 将标签和数据合并为一个结构 combined = list(zip(y_test_labels, x_test)) # 根据标签进行排序 combined_sorted = sorted(combined, key=lambda x: x[0]) # 分离排序后的标签和数据 y_test_labels_sorted, x_test_sorted = zip(*combined_sorted) # 将结果转换回 NumPy 数组(如果需要) y_test_labels_sorted = np.array(y_test_labels_sorted) x_test_sorted = np.array(x_test_sorted) # 现在 y_test_labels_sorted 和 x_test_sorted 是按照标签从0到6排序的
这个代码段首先将标签和对应的数据组合为一个元组列表,然后根据每个元组中的标签(即元组的第一个元素)对这个列表进行排序。排序后,它将标签和数据分离,并将它们转换回NumPy数组格式。这样,x_test_sorted
和 y_test_labels_sorted
就会按照你想要的方式排序。
""" # -*- coding: utf-8 -*- # @Time : 2024/1/29 11:23 # @Author : 王摇摆 # @FileName: splitDataAndCombine.py # @Software: PyCharm # @Blog :https://blog.csdn.net/weixin_44943389?type=blog """ import matplotlib.pyplot as plt import numpy as np import pandas as pd # 2022柱塞泵数据集 def data_preprocess(): # 加载数据集 x_train = pd.read_csv(r"../../dataset/X_train.csv", header=None) y_train = pd.read_csv(r"../../dataset/Y_train.csv", header=None) x_test = pd.read_csv(r"../../dataset/X_test.csv", header=None) y_test = pd.read_csv(r"../../dataset/Y_test.csv", header=None) x_train = x_train.values y_train = y_train.values x_test = x_test.values y_test = y_test.values x_train, x_test = x_train[:, :, np.newaxis], x_test[:, :, np.newaxis] # 在数据中新添加通道维度,用于扩张成为三维数据 return x_train, y_train, x_test, y_test # 获取数据集 _, _, x_test, y_test = data_preprocess() # 将 one-hot 编码转换为类别标签 y_test_labels = np.argmax(y_test, axis=1) # 设计思路 # 1. 将标签和数据合并为一个结构,以便它们可以同时被重新排序。 # 2. 根据标签进行排序。 # 3. 分离排序后的标签和数据。 import numpy as np import pandas as pd # 假设 x_test 和 y_test_labels 已经定义并加载了数据 # 将标签和数据合并为一个结构 combined = list(zip(y_test_labels, x_test)) # 根据标签进行排序 combined_sorted = sorted(combined, key=lambda x: x[0]) # 分离排序后的标签和数据 y_test_labels_sorted, x_test_sorted = zip(*combined_sorted) # 将结果转换回 NumPy 数组(如果需要) y_test_labels_sorted = np.array(y_test_labels_sorted) x_test_sorted = np.array(x_test_sorted) # 现在 y_test_labels_sorted 和 x_test_sorted 是按照标签从0到6排序的 # print(x_test_sorted) # print(y_test_labels_sorted) # # print(x_test_sorted.shape) # print(y_test_labels_sorted.shape) # 保存工作 # 将重排后的测试数据转换为DataFrame x_test_df = pd.DataFrame([x.flatten() for x in x_test_sorted]) # 保存重排后的测试数据为CSV文件 x_test_df.to_csv("x_test_sorted.csv", index=False, header=False) print('重排后的训练集数据保存成功') # 将重排后的测试标签转换为DataFrame y_test_labels_df = pd.DataFrame(y_test_labels_sorted) # 保存重排后的测试标签为CSV文件 y_test_labels_df.to_csv("y_test_sorted.csv", index=False, header=False) print('重排后的训练集标签保存成功')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。