原文: https://www.programiz.com/python-programming/examples/transpose-matrix

在此示例中,您将学习转置矩阵(通过使用嵌套列表创建矩阵)。

要理解此示例,您应该了解以下 Python 编程主题:


在 Python 中,我们可以将矩阵实现为嵌套列表(列表内的列表)。 我们可以将每个元素视为矩阵的一行。

例如,X = [[1, 2], [4, 5], [3, 6]]将代表 3x2 矩阵。 第一行可以选择为X[0]。 并且,第一行第一列中的元素可以被选择为X[0][0]

矩阵的转置是行和列的互换。 它表示为X'X中第i行和第j列的元素将放置在X'的第j行和第i列。 因此,如果X是 3x2 矩阵,则X'将是 2x3 矩阵。

以下是在 Python 中完成此操作的几种方法。


使用嵌套循环的矩阵转置

  1. # Program to transpose a matrix using a nested loop
  2. X = [[12,7],
  3. [4 ,5],
  4. [3 ,8]]
  5. result = [[0,0,0],
  6. [0,0,0]]
  7. # iterate through rows
  8. for i in range(len(X)):
  9. # iterate through columns
  10. for j in range(len(X[0])):
  11. result[j][i] = X[i][j]
  12. for r in result:
  13. print(r)

输出

  1. [12, 4, 3]
  2. [7, 5, 8]

在此程序中,我们使用了嵌套的for循环来遍历每一行和每一列。 在每个点上,我们将X[i][j]元素放入result[j][i]中。


使用嵌套列表推导式的矩阵转置

  1. ''' Program to transpose a matrix using list comprehension'''
  2. X = [[12,7],
  3. [4 ,5],
  4. [3 ,8]]
  5. result = [[X[j][i] for j in range(len(X))] for i in range(len(X[0]))]
  6. for r in result:
  7. print(r)

该程序的输出与上述相同。 我们使用嵌套列表推导式来遍历矩阵中的每个元素。