转置和的结果

时间:2015-03-13 10:59:02

标签: python arrays numpy matrix transpose

我有两个矩阵。计算总和axis=1。然后我想转置获得的结果。结果包含在表达中。您必须是矩阵1和2的元素,逐行计算总和。

你需要转换总和数组还是有其他方法?

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)

2 个答案:

答案 0 :(得分:1)

s1_t = map(lambda e: [e], s_1)

很可能是你寻求的答案。

答案 1 :(得分:1)

当您获得总和并获得一维数组时,您将丢失一个轴。转置对一维数组没有影响。

您可以插入新轴,也可以在取总和维持两个维度时指定keepdims=True(并且无需转置数组):

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

返回:

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