首页 > 解决方案 > 如何打乱矩阵的行及其相应的标签?

问题描述

我正处于构建我的第一个神经网络的早期阶段,而且我是 python 的新手。

我遇到了障碍,因为我不知道如何编写代码来用相应的标签打乱我的数据。我导入了我的 csv,并使用 numpy 创建了一个矩阵。我还为我的标签创建了一个矩阵

filepath = '/My Drive/t_data9(1).csv'
my_data = pd.read_csv('/content/gdrive' + filepath, index_col=0)
my_data_matrix =  np.array(my_data)
labels = [0]*5000 + [1]*5000
labels_matrix = np.array(labels)

我可以访问我的数据,所以它就在那里。我只需要将它混合起来,然后我就可以分离出一些训练和验证行并将其放入我正在使用 keras 构建的 NN 中。请指教。

标签: pythonneural-network

解决方案


您可以concat特征标签放入单个数据框中,并执行以下操作来打乱整个样本:

虚拟示例

import pandas as pd

my_data = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']},
                   index=[0, 1, 2, 3])

my_data.head()
    A   B   C   D
0   A0  B0  C0  D0
1   A1  B1  C1  D1
2   A2  B2  C2  D2
3   A3  B3  C3  D3

标签

labels = [0]*2 + [1]*2
my_data['labels'] = labels
my_data.head()
    A   B   C   D   labels
0   A0  B0  C0  D0  0
1   A1  B1  C1  D1  0
2   A2  B2  C2  D2  1
3   A3  B3  C3  D3  1

洗牌

my_data = my_data.sample(frac=1).reset_index(drop=True) # shuffling 
my_data.head()
    A   B   C   D   labels
0   A2  B2  C2  D2  1
1   A0  B0  C0  D0  0
2   A3  B3  C3  D3  1
3   A1  B1  C1  D1  0

推荐阅读