随机数的3x3数组

时间:2015-10-12 00:11:52

标签: arrays python-3.x matrix

我需要取0-8的数字并使用函数在3x3阵列中随机重新排列它们。什么是最简单的方法? 我需要将[0,1,2,3,4,5,6,7,8]作为一个3x3数组,其中的数字是随机顺序

1 个答案:

答案 0 :(得分:0)

一个想法是使用带有已排序数字的平面列表/数组,将它们混合(例如使用random.shuffle),然后将其重新整形为。 Python本身不支持数组,因此您可以使用列表,然后将它们重新整理为列表列表,如:

import random

def arrange(x, rows, cols):
    random.shuffle(x)
    return [x[cols * i : cols * (i + 1)] for i in range(rows)]

print(arrange(list(range(9)), 3, 3))

numpyarray object你也可以使用,它支持重塑等,请参阅文档,如:

import numpy as np

### Numpy's array solution
def arrange_np(x, rows, cols):
    np.random.shuffle(x)
    return x.reshape(rows, cols)

print(arrange_np(np.arange(9), 3, 3))