当前位置:   article > 正文

【经典代码】将随机划分后的数据集数据和标签进行重排对应_数据集标签顺序改变

数据集标签顺序改变

为了对测试集中的数据和标签进行重新排序,以便它们按照标签从0到6的顺序排列,你需要遵循以下步骤:

  1. 将标签和数据合并为一个结构,以便它们可以同时被重新排序。
  2. 根据标签进行排序。
  3. 分离排序后的标签和数据。

在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排序的
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

这个代码段首先将标签和对应的数据组合为一个元组列表,然后根据每个元组中的标签(即元组的第一个元素)对这个列表进行排序。排序后,它将标签和数据分离,并将它们转换回NumPy数组格式。这样,x_test_sortedy_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('重排后的训练集标签保存成功')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/795286
推荐阅读
相关标签
  

闽ICP备14008679号