numpy数组中每个矩阵的轨迹

时间:2019-05-03 15:34:41

标签: python numpy

给出多个矩阵的列表,我想计算每个矩阵的踪迹。

np.asarray([[[1,2,3],
             [4,5,6],
             [7,8,9]],
           [[10,11,12],
            [13,14,15],
            [16,17,18]]])

结果应为:

np.asarray([15, 42])

3 个答案:

答案 0 :(得分:3)

这是沿第二个轴使用advanced indexingsum的一种方式:

a = np.asarray([[[1,2,3],
                 [4,5,6],
                 [7,8,9]],
               [[10,11,12],
                [13,14,15],
                [16,17,18]]])

a[:, range(a.shape[1]), range(a.shape[2])].sum(1)
# array([15, 42])

答案 1 :(得分:3)

axis1=1中使用axis2=2np.trace自变量。

np.trace(x, axis1=1, axis2=2)

答案 2 :(得分:1)

np.trace函数与参数axis1=1axis2=2一起使用

mat = np.asarray([[[1,2,3],
             [4,5,6],
             [7,8,9]],
           [[10,11,12],
            [13,14,15],
            [16,17,18]]])

np.trace(mat, axis1=1, axis2=2)

输出:

array([15, 42])