小编Rya*_*yan的帖子

在Numpy中生成对称矩阵

我试图在numpy中生成对称矩阵.具体地说,这些矩阵具有随机位置条目,并且在每个条目中内容可以是随机的.沿着主对角线,我们并不关心那里的内容,所以我也将它们随机化了.

我采用的方法是首先生成一个nxn全零矩阵,然后简单地循环遍历矩阵的索引.但是,考虑到在python中考虑循环是相对昂贵的,我想知道我是否可以在不使用python的for循环的情况下实现相同的功能.

是否有一些内置于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
Run Code Online (Sandbox Code Playgroud)

python random numpy matrix adjacency-matrix

27
推荐指数
2
解决办法
3万
查看次数

标签 统计

adjacency-matrix ×1

matrix ×1

numpy ×1

python ×1

random ×1