我正在尝试在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
b + b.T
,你会得到一个集中在0附近的非均匀分布。 - unutbunp.tril(a) + np.tril(a, -1).T
。 - Ben Usmannp.random.randint(-5,5,size=(N,N))
seems to have been deprecated need to userandint
- sushmit