如何使用numpy.eye函数生成自定义对角线值的矩阵?
仅用np.eye生成自定义对角线的零矩阵?
当然可以!你完全不需要额外调用np.fill_diagonal,直接利用np.eye的特性就能一行搞定。
np.eye生成的矩阵默认对角线元素为1,其余为0,所以只需要将生成的矩阵直接乘以你想要的自定义对角线值,就能得到目标矩阵:
import numpy as np a = np.eye(4) * 4 print(a)
输出结果和你原来的代码完全一致:
[[4. 0. 0. 0.] [0. 4. 0. 0.] [0. 0. 4. 0.] [0. 0. 0. 4.]]
如果需要调整对角线的偏移位置(比如上对角线或下对角线),这种方法同样适用,比如生成上偏移一位、对角线值为5的矩阵:
a = np.eye(4, k=1) * 5
这样就能得到:
[[0. 5. 0. 0.] [0. 0. 5. 0.] [0. 0. 0. 5.] [0. 0. 0. 0.]]
内容的提问来源于stack exchange,提问作者user19744922
相关产品推荐
相关产品推荐

