如何使用numpy.eye函数自定义对角线值?

vs3odd8k  于 11个月前  发布在  其他
关注(0)|答案(4)|浏览(130)

我试图使用一行代码来创建一个除了对角线的自定义值之外都为零的矩阵。我可以像下面的代码一样做到这一点,但我想知道我是否可以只使用np.eye来做到这一点?

import numpy as np
a = np.eye(4,4 k=0)  
np.fill_diagonal (a,4)

print(a)

字符串

i2loujxw

i2loujxw1#

在numpy模块中尝试identity矩阵:

a=np.identity(10)*4

字符串

5jvtdoz2

5jvtdoz22#

import numpy as np

a = np.eye(4)*4
print(a)

字符串

siotufzp

siotufzp3#

我会完全避免np.eye(),只在零矩阵上使用np.fill_diagonal(),如果你不使用它的任何功能:

import numpy as np

def value_eye_fill(value, n):
    result = np.zeros((n, n))
    np.fill_diagonal(result, value)
    return result

字符串
这应该是NumPy中较大输入的最快方法。
当然,你也可以使用np.eye(),避免使用np.fill_diagonal(),只需将值乘以np.eye()的结果:

import numpy as np

def value_eye_fill(value, n):
    return value * np.eye(n)

rsl1atfo

rsl1atfo4#

import numpy as np

custom_diagonal_values = [ ]

matrix_size = len(custom_diagonal_values)
custom_matrix = np.zeroes(matrix_size, matrix_size)

np.fill_diagonal(custom_matrix, custom_diagonal_values)

print(custom_matrix)

字符串

相关问题