我正在尝试用numpy创建一个nxn随机数的随机方阵。当然我能够生成足够的随机数,但是我在使用numpy创建一个可变长度的矩阵时遇到了麻烦。到目前为止,这是我所得到的:
def testMatrix(size):
a = []
for i in range(0, size*size):
a.append(randint(0, 5))
如何将此列表放入x大小的数组中?
答案 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}}