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


在本文中,我们将向您展示如何在 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() 方法。

更新于:2022年10月27日

2K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告