用python洗牌数组最简单的方法是什么?


当前回答

如果你想要一个新的数组,你可以使用sample:

import random
new_array = random.sample( array, len(array) )

其他回答

当处理常规的Python列表时,random.shuffle()将完成工作,就像前面的答案所显示的那样。

但当涉及到ndarray(numpy.array)时,随机。Shuffle似乎破坏了原始ndarray。这里有一个例子:

import random
import numpy as np
import numpy.random

a = np.array([1,2,3,4,5,6])
a.shape = (3,2)
print a
random.shuffle(a) # a will definitely be destroyed
print a

只需使用:np.random.shuffle(a)

像随机的。Shuffle, np.random.shuffle原地打乱数组。

如果你想要一个新的数组,你可以使用sample:

import random
new_array = random.sample( array, len(array) )
import random
random.shuffle(array)
import random
random.shuffle(array)

除了前面的回复,我想介绍另一个功能。

numpy。random。shuffle和random。进行原地洗牌。但是,如果你想返回一个打乱的数组,可以使用numpy.random.permutation函数。