如何在 Python 中一行一行地转置矩阵?

pythonserver side programmingprogramming更新于 2024/2/19 17:43:00

在本文中,我们将向您展示如何在 Python 中一行一行地转置矩阵。以下是完成此任务的各种方法 -

  • 使用嵌套列表理解
  • 使用 NumPy 模块
  • 使用 zip() 函数

矩阵的转置是什么?

矩阵转置是行和列的交换。它缩写为 A'。 A' 的第 i 行和第 j 列中的元素将移动到 A' 的第 j 行和第 i 列


使用嵌套列表推导式

算法(步骤)

以下是执行所需任务需要遵循的算法/步骤 −

  • 创建一个变量来存储输入矩阵。

  • 通过使用 for 循环遍历输入矩阵中的每个元素并打印相应的元素来打印给定的输入矩阵。

  • 使用 for 循环和 range() 函数遍历直到达到行数(返回数字序列从 0 开始并以 1 为增量(默认值)并在给定数字之前停止),然后在 for 循环内,使用另一个 for 循环和 len() 函数遍历直到达到列数(对象中的项目数由 len() 方法返回),并使用嵌套列表推导将元素存储在列表中。

  • 通过使用 for 循环遍历上述转置矩阵中的每个元素并打印相应的元素来打印输入矩阵的转置。

示例

以下程序使用嵌套列表推导返回输入矩阵的转置 -

# input matrix inputMatrix= [[1, 4, 2],[2, 0, 3]] # printing input matrix print("Input matrix:") # traversing through each element in the input matrix for i in inputMatrix: # printing element print(i) # Transposing the matrix # Iterating till number of rows using for loop(n iterator) and # till number of columns using another for loop(m iterator) and storing the element(inputMatrix[n][m]) transposeMatrix= [ [inputMatrix[n][m] for n in range(len(inputMatrix))] for m in range(len(inputMatrix[0]))] # printing transpose of a matrix print("Transpose of an input matrix:") # traversing through each element in the above transpose matrix for i in transposeMatrix: # printing corresponding element print(i)

输出

执行时,上述程序将生成以下输出 -

Input matrix:
[1, 4, 2]
[2, 0, 3]
Transpose of an input matrix:
[1, 2]
[4, 0]
[2, 3]

使用 NumPy 模块

NumPy 是一个 Python 库,用于计算和处理多维和一维列表元素。这里将使用 NumPy 模块的 transpose() 函数。它返回列表的转置。

NumPy 是一个 Python 库,旨在有效地处理 Python 中的数组。它速度快、易学、存储效率高。它还改进了处理数据的方式。在 NumPy 中,我们可以生成一个 n 维数组。要使用 NumPy,我们只需将其导入到我们的程序中,然后我们就可以轻松地在代码中使用 NumPy 的功能。

NumPy 是一个流行的 Python 科学和统计分析包。 NumPy 数组是来自相同数据类型的值的网格。

算法(步骤)

以下是执行所需任务要遵循的算法/步骤 -

  • 使用 import 关键字导入 NumPy 模块。

  • 通过使用 for 循环遍历输入矩阵中的每个元素并打印相应的元素来打印给定的输入矩阵。

  • 使用 NumPy 模块的 transpose() 函数(返回列表的转置)通过将输入矩阵作为参数传递给它并创建一个变量来存储它来获取转置输入矩阵。

  • 打印输入矩阵的结果转置。

示例

以下程序使用NumPy.transpose() 函数 −

# importing numpy module import numpy # input matrix inputMatrix= [[1, 4, 2],[2, 0, 3]] # printing input matrix print("Input matrix:") # traversing through each element in the input matrix for i in inputMatrix: # printing element print(i) # getting the transpose an input matrix transposeMatrix = numpy.transpose(inputMatrix) # printing transpose of a matrix print("Transpose of an input matrix:\n", transposeMatrix)

输出

执行时,上述程序将生成以下输出 -

Input matrix:
[1, 4, 2]
[2, 0, 3]
Transpose of an input matrix:
[[1 2]
 [4 0]
 [2 3]]

使用 zip() 函数

Python zip() 函数返回一个元组迭代器,其中第 i 个元组包含每个参数序列中的第 i 个元素。

在这里我们使用 * 来解压缩我们的数组,然后将其压缩以获取转置。

算法(步骤)

以下是执行所需任务需要遵循的算法/步骤 -

  • 创建一个变量来存储输入矩阵。

  • 通过使用 for 循环遍历输入矩阵中的每个元素并打印相应的元素来打印给定的输入矩阵。

  • 使用 zip() 函数压缩输入数组(这里它转置矩阵)。

  • 打印输入的转置矩阵。

示例

以下程序使用 zip() 函数返回输入矩阵的转置 −

# input matrix inputMatrix= [(1, 4, 2),(2, 0, 3), (4, 2, 5)] # printing input matrix print("Input matrix:") # traversing through each element in the input matrix for i in inputMatrix: # printing element print(i) # getting the transpose an input matrix transposeMatrix = zip(*inputMatrix) # printing transpose of a matrix print("Transpose of an input matrix:") # traversing through each element in the above transpose matrix for i in transposeMatrix: # printing corresponding element at the iterator index print(i)

输出

执行时,上述程序将生成以下输出 -

Input matrix:
(1, 4, 2)
(2, 0, 3)
(4, 2, 5)
Transpose of an input matrix:
(1, 2, 4)
(4, 0, 2)
(2, 3, 5)

结论

在本文中,我们学习了如何在 Python 中用一行代码找到转置。我们使用了三种方法来完成这项工作。我们从嵌套列表推导开始,然后转到 Numpy 模块,最后转到 zip() 方法。


相关文章