转置求和结果

Transpose result of sum

我有两个矩阵。 axis=1 上总和的计算。然后我想转置得到的结果。结果体现在表达上。你必须对矩阵的元素 1 和 2 逐行计算总和。

需要转置sum的数组还是有其他方法?

matrix1 = [[ 5.  4.  3.  5.  3.]
           [ 5.  7.  8.  2.  2.]
           [ 8.  2.  4.  0.  3.]
           [ 7.  2.  5.  3.  5.]
           [ 3.  1.  3.  0.  2.]]

matrix2 = [[  5.   7.   6.   5.   4.]
           [  3.  45.   2.   3.   4.]
           [  2.   4.   6.   4.   3.]
           [  3.   4.   5.   6.  54.]
           [  4.   3.   6.   7.   5.]]

s_1 = np.array(matrix_1.sum(axis=1))
s_1 = np.array(matrix_2.sum(axis=1))

s_1T = np.transpose(s_1)
s_2T = np.transpose(s_2)

结果:

S_1T
[ 20.  24.  17.  22.   9.]

S_2T
[ 27.  57.  19.  72.  25.]

如何转置数组?

FROM
[ 20.  24.  17.  22.   9.]
[ 27.  57.  19.  72.  25.]

TO
[20.
 24.
 17.
 22.
  9.]

 [27.
  57.
  19.
  72.
  25.]

表达式中使用的转置数组:

result = ((matrix_2 - matrix_1)/matrix_1)/((s_2T-s_1T)/s_1T)
s1_t = map(lambda e: [e], s_1)

很可能是您要找的答案。

当您求和并返回一维数组时,您丢失了一个轴。转置对一维数组没有影响。

您可以插入一个新的轴,也可以在求和时指定keepdims=True以保持二维(并避免需要转置数组):

matrix1.sum(axis=1, keepdims=True)

returns:

np.array([[20.],
          [24.],
          [17.],
          [22.],
          [ 9.]])