【问题标题】:How to create a random matrix?如何创建一个随机矩阵?
【发布时间】:2014-03-03 19:30:30
【问题描述】:

我想创建一个随机矩阵,例如 [[[100, 50, 25], [22, 75, 195]]]

我的代码是

n = 1
r = 2
e = 3

sup = []

for i in range(n):
    sup1 = []
    for c in range(r):
       sup0 = list (random.randint (200, 0, e))
       sup1.append (sup0)
    sup.append (sup1)    

print sup

但是 python 给我错误。

【问题讨论】:

  • 您能提供完整的 Traceback 吗?
  • 可能来自random.randint 中使用 3 个参数,因为它只需要 2 个。

标签: python for-loop random matrix


【解决方案1】:

这应该可以工作(不知道e 做了什么):

sup = [[random.randint(0, 200) for _ in range(r)] for _ in range(n)]

【讨论】:

  • 如果你真的需要优化,itertools.repeat() 对于大型数组可能会更快,因为它不会为每个循环制造整数对象。
【解决方案2】:

您可以使用numpy 直接获取所需大小的随机矩阵,其值在给定范围内。

>>> numpy.random.randint(low = 0, high = 200, size=(2, 4))
array([[ 75,  21, 132,  90],
       [112,  11, 104, 114]])

>>> r = 2
>>> n = 1
>>> numpy.random.randint(low = 0, high = 200, size=(r, n))
array([[94],
       [51]])

More details

【讨论】: