目前即将面临关于2个不同行大小的numpy数组的排列问题,我知道如何利用np.random.shuffle函数,但我似乎无法找到解决我特定问题的方法,来自的例子来自numpy文档仅指具有相同行大小的nd数组,例如x.shape=[10][784] y.shape=[10][784]
对于具有这些形状的两个数组,我想以一致的顺序对列值进行置换/随机混洗:x.shape=[60000][784], y.shape=[10000][784]
。
e.g。
x[59000] = [0,1,2,3,4,5,6,7,8,9]
y[9999] = [0,1,2,3,4,5,6,7,8,9]
排列后,两者都应以相同的一致方式进行洗牌,例如:
x[59000] = [3,0,1,6,7,2,9,8,4,5] y[9999] = [3,0,1,6,7,2,9,8,4,5]
shuffle顺序需要在具有不同行大小的两个数组上保持一致。我似乎得到了一个 ValueError:找到了包含不一致样本数的输入变量:[60000,10000]" 有关如何解决此问题的任何想法?非常感谢任何帮助!
答案 0 :(得分:1)
将阵列粘在一起并置换组合阵列:
merged = numpy.concatenate([x, y])
numpy.shuffle(merged.T)
x, y = numpy.split(merged, [x.shape[0]])
答案 1 :(得分:0)