将列表合并为一个 numpy 数组并对角线值求和



嗨,我想将列表合并到一个 numpy 数组中。但是,似乎我需要先将它们传输到数组中,然后将它们组合成一个更大的数组。
我只是想知道我可以直接将列表合并到一个数组中。

The lists
[1,2,3,4,5]
[6,7,8,9,10]
[11,12,13,14,15]
[1,2,3,4,5]
[6,7,8,9,10]

我想将它们组合成一个 5*5 数组

array(
[[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[1,2,3,4,5],
[6,7,8,9,10]])

得到数组后,我想对数组的对角线值求和,即 6+2+13+9+5。因此,我想确保数组格式也可以让我做np.diag

但是,您要将列表转换为数组以对其执行np.diag。所以,希望你能像你在帖子中提到的一样做,如下所示:

import numpy as np
k=np.array([[6,7,8,9,10],[1,2,3,4,5],[11,12,13,14,15],[6,7,8,9,10],[1,2,3,4,5]])
print(k)
>>array([[ 6,  7,  8,  9, 10],
           [ 1,  2,  3,  4,  5],
           [11, 12, 13, 14, 15],
           [ 6,  7,  8,  9, 10],
           [ 1,  2,  3,  4,  5]])
np.diag(k)
>>array([ 6,  2, 13,  9,  5])
sum(np.diag(k))
>>35

你可以参考 asarray() 方法。但是,它再次等同于执行上述操作。

最新更新