【发布时间】:2015-10-12 00:11:52
【问题描述】:
我需要取数字 0-8 并使用函数在 3x3 数组中随机重新排列它们。最简单的方法是什么? 我需要将 [0,1,2,3,4,5,6,7,8] 作为 3x3 数组,其中的数字以随机顺序排列
【问题讨论】:
-
你有没有努力或尝试过什么?
标签: arrays python-3.x matrix
我需要取数字 0-8 并使用函数在 3x3 数组中随机重新排列它们。最简单的方法是什么? 我需要将 [0,1,2,3,4,5,6,7,8] 作为 3x3 数组,其中的数字以随机顺序排列
【问题讨论】:
标签: arrays python-3.x matrix
一个想法是使用带有排序数字的平面列表/数组,将它们打乱(例如使用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))
numpy 有一个 array 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))
【讨论】: