我正试图在numpy中生成对称矩阵。具体来说,这些矩阵要有随机的地方条目,而且每个条目的内容都可以是随机的。沿着主对角线,我们并不关心里面有什么条目,所以我把这些条目也随机化了。
我采取的方法是首先生成一个nxn的全零矩阵,然后简单地在矩阵的索引上循环。 我怎样才能用numpy更有效地做到这一点?
import numpy as np
import random
def empty(x, y):
return x*0
b = np.fromfunction(empty, (n, n), dtype = int)
for i in range(0, n):
for j in range(0, n):
if i == j:
b[i][j] = random.randrange(-2000, 2000)
else:
switch = random.random()
random.seed()
if switch > random.random():
a = random.randrange(-2000, 2000)
b[i][j] = a
b[j][i] = a
else:
b[i][j] = 0
b[j][i] = 0