【问题标题】:3x3 array with random numbers带有随机数的 3x3 数组
【发布时间】:2015-10-12 00:11:52
【问题描述】:

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

【问题讨论】:

  • 你有没有努力或尝试过什么?

标签: arrays python-3.x matrix


【解决方案1】:

一个想法是使用带有排序数字的平面列表/数组,将它们打乱(例如使用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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    相关资源
    最近更新 更多