将列表合并为一个numpy数组,并将对角线值相加

时间:2019-01-18 05:33:59

标签: python arrays

嗨,我想将列表组合成一个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

1 个答案:

答案 0 :(得分:1)

但是,您打算将列表转换为数组以对其执行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()方法。但是,它再次等同于执行上述操作。