在python中洗牌多维numpy数组

在python中洗牌多维numpy数组,python,arrays,numpy,machine-learning,Python,Arrays,Numpy,Machine Learning,我有一个多维NumPy数组,作为神经网络的输入数据。我有2115个不同的(6100,60)样品。我想对2115(6100,60)个样本的数据进行洗牌-重新排列顺序。我想确保(6100,60)的通道、列和行都保持在原位,也就是说,我只想洗牌这2115个样本的位置(在数组中) 我不知道如何做到这一点-任何帮助将不胜感激 谢谢。您可以将样本编号(假设为第一维度)洗牌,然后重新编制索引: order = np.random.permutation(np.arange(2115)) data = dat

我有一个多维NumPy数组,作为神经网络的输入数据。我有2115个不同的(6100,60)样品。我想对2115(6100,60)个样本的数据进行洗牌-重新排列顺序。我想确保(6100,60)的通道、列和行都保持在原位,也就是说,我只想洗牌这2115个样本的位置(在数组中)

我不知道如何做到这一点-任何帮助将不胜感激


谢谢。

您可以将样本编号(假设为第一维度)洗牌,然后重新编制索引:

order = np.random.permutation(np.arange(2115))

data = data[order]

这对我来说很有效。没关系,我刚刚意识到它交换了第二维度的顺序——6个通道。这是我不想发生的事情,你知道我怎样才能把它们放在适当的位置吗?这是
2115
样本的维度?这是第一个维度,我也会这样做:data=data[order,:,:,,:,:]?我的数据大小为(2115,6100,60)。除了2115的尺寸,我希望所有的东西都保持在原位。