如何相应地改组矩阵和数组

时间:2015-01-19 20:31:53

标签: python list numpy shuffle

假设我有一个名为mXd的{​​{1}}矩阵,以及一个名为X的{​​{1}}数组(使用mX1)。 Y行对应numpy行。

现在假设我需要在X中混洗数据(行)。我用过:

Y

我有没有办法跟踪X被洗牌的方式,所以我可以相应地改变random.shuffle(X)

谢谢:)

1 个答案:

答案 0 :(得分:2)

您可以使用numpy.random.permutation创建indices的置换列表,然后使用XYindices进行随机播放:

>>> import numpy
>>> m = 10
>>> X = numpy.random.rand(m, m)
>>> Y = numpy.random.rand(m)
>>> indices = numpy.random.permutation(m)
>>> indices
array([4, 7, 6, 9, 0, 3, 1, 2, 8, 5])
>>> Y
array([ 0.53867012,  0.6700051 ,  0.06199551,  0.51248468,  0.4990566 ,
        0.81435935,  0.16030748,  0.96252029,  0.44897724,  0.98062564])
>>> Y = Y[indices]
>>> Y
array([ 0.4990566 ,  0.96252029,  0.16030748,  0.98062564,  0.53867012,
        0.51248468,  0.6700051 ,  0.06199551,  0.44897724,  0.81435935])
>>> X = X[indices, :]