【问题标题】:Shuffle numpy array without split随机播放 numpy 数组而不拆分
【发布时间】:2020-09-22 17:56:13
【问题描述】:

我有一个 4D numpy 数组用于输入到 CNN 类似于此生成的数据:

import numpy as np
X = np.random.rand(20, 1, 10, 4)

而对应的标签(在一个单独的数组中)y

y = [0,0,0,....0]

所以我输入的第一个实例看起来像:

>>>X[0]
array([[[0.11529038, 0.56951377, 0.64859216, 0.53927201],
        [0.24599472, 0.99658675, 0.61760602, 0.23245005],
        [0.21688713, 0.87376011, 0.80853348, 0.95649564],
        [0.01096112, 0.36735236, 0.23917356, 0.06020551],
        [0.14795334, 0.31689876, 0.902638  , 0.95702681],
        [0.59684508, 0.53496984, 0.91312413, 0.17465782],
        [0.37409845, 0.51140496, 0.32453245, 0.59066936],
        [0.64259922, 0.6586773 , 0.13101008, 0.71666185],
        [0.59971516, 0.96920186, 0.8566649 , 0.37763693],
        [0.34957495, 0.88521399, 0.30383687, 0.23567811]]])

>>>len(y)
20

我想在输入网络之前对我的数据集进行洗牌,但我不能使用 sklearn train_test_split 将数据拆分到训练测试中。我的数据集已经被分成训练测试,但想在模型拟合之前洗牌。

【问题讨论】:

    标签: python numpy multidimensional-array


    【解决方案1】:
    train_idx = np.random.permutation(train_set.shape[0])
    train_x, train_y = train_x[train_idx], train_y[train_idx]
    

    val 和 test 也是如此。

    【讨论】:

    • 谢谢,所以我可以通过train_x, train_y = np.random.shuffle(train_x,train_y),因为标签在单独的数组中?确保标签与其特征相对应?
    【解决方案2】:

    sklearn 有一个shuffle 方法

    from sklearn.utils import shuffle
    X, y = shuffle(X, y)
    

    【讨论】:

      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2020-09-29
      • 1970-01-01
      相关资源
      最近更新 更多