如何用NumPy创建对角线元素为特定值K的单位矩阵
如何用NumPy创建对角线元素为特定值K的矩阵
嘿,这事儿挺简单的!我们要做的其实是生成标量矩阵——也就是对角线全为指定值K、其余元素都是0的方阵。NumPy里有好几种直观的实现方式,我给你列两种最常用的:
方法1:借助np.eye()快速生成
np.eye(n)会直接创建一个n×n的单位矩阵(对角线为1,其余为0),我们只需要把它和K相乘,就能把对角线元素替换成K了:
import numpy as np # 定义你需要的K值和矩阵维度n K = 5 n = 3 # 生成目标矩阵 scalar_matrix = K * np.eye(n) print(scalar_matrix)
输出结果会是:
[[5. 0. 0.] [0. 5. 0.] [0. 0. 5.]]
如果想要整数类型的矩阵(避免默认的浮点数),可以给np.eye()加个dtype参数:
scalar_matrix = K * np.eye(n, dtype=int)
方法2:用np.diag()构造对角线矩阵
另一种方式是直接构造一个对角线元素全为K的数组,再用np.diag()把它转成矩阵:
import numpy as np K = 5 n = 3 # 先生成一个包含n个K的数组,再转成对角线矩阵 scalar_matrix = np.diag([K] * n) print(scalar_matrix)
这个方法的输出和上面完全一样,好处是如果你后续需要调整部分对角线元素,直接修改数组就行,灵活性更强。同样,要整数类型的话也可以加dtype=int:
scalar_matrix = np.diag([K] * n, dtype=int)
两种方法都能完美满足你的需求,选哪个看你个人习惯就好~
内容的提问来源于stack exchange,提问作者Abdul-Razak Adam
相关产品推荐
相关产品推荐

