我试图使用一行代码来创建一个除了对角线的自定义值之外都为零的矩阵。我可以像下面的代码一样做到这一点,但我想知道我是否可以只使用np.eye来做到这一点?
import numpy as np a = np.eye(4,4 k=0) np.fill_diagonal (a,4) print(a)
字符串
i2loujxw1#
在numpy模块中尝试identity矩阵:
identity
a=np.identity(10)*4
5jvtdoz22#
import numpy as np a = np.eye(4)*4 print(a)
siotufzp3#
我会完全避免np.eye(),只在零矩阵上使用np.fill_diagonal(),如果你不使用它的任何功能:
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)
型
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)
4条答案
按热度按时间i2loujxw1#
在numpy模块中尝试
identity
矩阵:字符串
5jvtdoz22#
字符串
siotufzp3#
我会完全避免
np.eye()
,只在零矩阵上使用np.fill_diagonal()
,如果你不使用它的任何功能:字符串
这应该是NumPy中较大输入的最快方法。
当然,你也可以使用
np.eye()
,避免使用np.fill_diagonal()
,只需将值乘以np.eye()
的结果:型
rsl1atfo4#
字符串