在python中创建一个随机矩阵

时间:2018-02-03 00:27:59

标签: python numpy

我正在尝试用numpy创建一个nxn随机数的随机方阵。当然我能够生成足够的随机数,但是我在使用numpy创建一个可变长度的矩阵时遇到了麻烦。到目前为止,这是我所得到的:

def testMatrix(size):
    a = []
    for i in range(0, size*size):
        a.append(randint(0, 5))

如何将此列表放入x大小的数组中?

2 个答案:

答案 0 :(得分:4)

尝试

np.random.randint(0, 5, size=(s, s))

答案 1 :(得分:0)

您的测试矩阵目前是一维的。如果你想用numpy创建一个随机矩阵,你可以这样做:

array([[ 0.15194989,  0.21977027,  0.85063633],
   [ 0.1879659 ,  0.09024749,  0.3566058 ],
   [ 0.18044427,  0.59143149,  0.25449112]])

结果将是:

import random

num_rows = 3
num_columns = 3
random_matrix = [[random.random() for j in range(num_rows)] for i in range(num_columns)]

你也可以创建一个没有numpy的随机矩阵:

[[0.9982841729782105, 0.9659048749818827, 0.22838327707784145], 
[0.3524666409224604, 0.1918744765283834, 0.7779130503458696], 
[0.5239230720346117, 0.0224389713805887, 0.6547162177880549]]

结果将是:

def convert_to_matrix(arr, chunk_size):
    return [arr[i:i+chunk_size] for i in range(0, len(arr), chunk_size)]

arr = [1,2,3,4,5,6,7,8,9]
matrix = convert_to_matrix(arr, 3)
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]] is the output

根据评论,我添加了一个将一维数组转换为矩阵的函数:

{{1}}