生成随机值矩阵

问题描述 投票:0回答:1

我想得到一个主对角线上为零的随机值矩阵。然后下面的代码适用于整数值,但我实际上想要浮点值。

def matriz_custo(n):
    numeros = sample(range(35,120+1),(n-1)*n)
    c = np.array([numeros[i:i+n] for i in range(0,len(numeros),n)])
    np.fill_diagonal(c, 0)
    c[0][n-1] = 0
    return (c)

所以我试过:

def matriz_custo_new(n):
    numeros = np.random.uniform(low=27.32, high=37.25, size=(n-1,n))
    c = np.array([numeros[i:i+n] for i in range(0,len(numeros),n)])
    r = np.arange(n-1)
    c[:,r,r] = np.inf
    c[0][n-1] = 0
    return (c)

然后碰巧创造了一个额外的维度。我想像 c[0][0] 一样访问它,否则我必须更改所有代码。

python numpy random dimensions
1个回答
0
投票
def custom_matrix(low, high, n):
    array = np.random.uniform(low, high, (n, n))
    for i in range(n):
        array[i][i] = 0
    return array    


custom_matrix(0, 1, 3)

# returns 
# [[0.         0.56331153 0.09965334]
# [0.10010369 0.         0.79204369]
# [0.66917184 0.67228158 0.        ]]
© www.soinside.com 2019 - 2024. All rights reserved.