问题描述
我想替换 k 对角线下的所有子对角线值。
例如:
我们首先导入 numpy 库:
import numpy as np
然后我们创建矩阵:
In [14]: matrix = np.matrix('1 1 1 1 1 1; 1 1 1 1 1 1; 1 1 1 1 1 1; 1 1 1 1 1 1; 1 1 1 1 1 1')
然后我们得到:
In [15]: print(matrix)
Out[16]:
[[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]]
然后我们得到 k = 1 的 k 对角线下的对角线,例如:
In [17]: lowerdiags = [np.diag(matrix,k=e+1).tolist() for e in range(-len(matrix),k)]
In [18]: print(lowerdiags)
Out[19]: [[1],[1,1],1,1]]
而且,我被困在那里,我应该添加什么才能使 k = 1 并将所有值替换为 0,就像这样:(知道我们刚刚找到了次对角线)
[[0 1 1 1 1 1]
[0 0 1 1 1 1]
[0 0 0 1 1 1]
[0 0 0 0 1 1]
[0 0 0 0 0 1]]
甚至对于 k = 0 :
[[1 1 1 1 1 1]
[0 1 1 1 1 1]
[0 0 1 1 1 1]
[0 0 0 1 1 1]
[0 0 0 0 1 1]]
感谢您的帮助和耐心。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)