【问题标题】:How to create a random matrix in Pure Python?如何在纯 Python 中创建随机矩阵?
【发布时间】:2020-08-12 10:07:59
【问题描述】:

什么是等效的纯python代码?

A = np.random.randint(2, size=(4,2))

array([[0, 1],
       [0, 1],
       [0, 0],
       [1, 0]])

【问题讨论】:

  • 当您尝试这样做时究竟是什么问题?

标签: python numpy random


【解决方案1】:

这可能适合你。

from random import randint

A = [[randint(0, 1) for y in range(2)]   for x in range(4)]

print(A)

输出:

>>> [[0, 0], 
     [0, 0],
     [0, 1],
     [0, 1]]

【讨论】:

    【解决方案2】:

    如果您需要具有多个维度的不同形状,这里是代码:

    import random
    
    def random_matrix(c,shape):
        for i in range(len(shape)):
            if len(shape)-i>1:
                for j in range(shape[i]):
                    return [random_matrix(c,shape[i+1:]) for b in range(shape[i])]
            else:
                return [random.randint(0,c-1) for v in range(shape[i])]
    
    mat = random_matrix(2,[3,3,1])
    print(mat)
    print(mat[0])
    

    输出:

    [[[1], [0], [1]], [[0], [1], [0]], [[0], [1], [0]]]
    [[1], [0], [1]]
    

    或者就像你的例子一样:

    mat = random_matrix(2, [4,2])
    print(mat)
    

    输出:

    [[0, 0], [0, 0], [0, 0], [0, 0]]
    

    【讨论】: