繁体   English   中英

如何将一维 numpy 数组转换为下三角矩阵?

[英]how to convert an 1d numpy array to a lower triangular matrix?

我有一个 numpy 数组,例如:

np.array([1,2,3,4])

我想把它转换成一个下三角矩阵,比如

np.array([
    [4, 0, 0, 0],
    [3, 4, 0, 0],
    [2, 3, 4, 0],
    [1, 2, 3, 4]
])

,没有for循环....我该怎么做?

Michael Szczesny在评论中提出的类似解决方案可以是:

b = np.arange(a.size)
result = np.tril(np.take(a, b - b[:,None] + a.size - 1, mode='clip'))

结果是:

array([[4, 0, 0, 0],
       [3, 4, 0, 0],
       [2, 3, 4, 0],
       [1, 2, 3, 4]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM