用python洗牌数组最简单的方法是什么?
当前回答
除了前面的回复,我想介绍另一个功能。
numpy。random。shuffle和random。进行原地洗牌。但是,如果你想返回一个打乱的数组,可以使用numpy.random.permutation函数。
其他回答
如果你想要一个新的数组,你可以使用sample:
import random
new_array = random.sample( array, len(array) )
除了前面的回复,我想介绍另一个功能。
numpy。random。shuffle和random。进行原地洗牌。但是,如果你想返回一个打乱的数组,可以使用numpy.random.permutation函数。
# arr = numpy array to shuffle
def shuffle(arr):
a = numpy.arange(len(arr))
b = numpy.empty(1)
for i in range(len(arr)):
sel = numpy.random.random_integers(0, high=len(a)-1, size=1)
b = numpy.append(b, a[sel])
a = numpy.delete(a, sel)
b = b[1:].astype(int)
return arr[b]
import random
random.shuffle(array)
import random
random.shuffle(array)