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

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

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

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

更多Python相关文章,请阅读:Python 教程

矩阵转置是什么?

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

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

使用嵌套列表理解

算法(步骤)

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

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

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

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

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

例子

以下程序使用嵌套列表理解返回输入矩阵的转置−

# 输入矩阵
inputMatrix= [[1, 4, 2],[2, 0, 3]]

# 打印输矩阵
print("输入矩阵:")

# 通过使用for循环来遍历输入矩阵中的每个元素并打印相应的元素
for i in inputMatrix:
   # 打印元素
   print(i)

# 转置矩阵
#使用for循环(n迭代器)迭代至行数,并
#使用另一个for循环(m迭代器)迭代到列数,并存储元素(inputMatrix [n] [m])
transposeMatrix= [ [inputMatrix[n][m] for n in range(len(inputMatrix))] for m in range(len(inputMatrix[0]))]

# 打印矩阵的转置
print("输入矩阵的转置:")
# 遍历所获取的转置矩阵中的每个元素,并打印相应的元素
for i in transposeMatrix:
   # 打印相应的元素
   print(i)

输出

执行上述程序后,将生成以下输出−

输入矩阵:
[1, 4, 2]
[2, 0, 3]
输入矩阵的转置:
[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()函数返回输入矩阵的转置-

# 导入numpy模块
import numpy

# 输入矩阵
inputMatrix= [[1, 4, 2],[2, 0, 3]]

# 打印输入矩阵
print("输入矩阵:" )

# 通过遍历输入矩阵中的每个元素并打印相应元素来进行遍历
for i in inputMatrix:
   # 打印元素
   print(i)

# 获取输入矩阵的转置
transposeMatrix = numpy.transpose(inputMatrix)

# 打印矩阵的转置
print("输入矩阵的转置:\n", transposeMatrix)

输出

在执行以上程序后,将生成以下输出-

输入矩阵:
[1, 4, 2]
[2, 0, 3]
输入矩阵的转置:
[[1 2]
 [4 0]
 [2 3]]

使用zip()函数

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

这里我们使用*来解包我们的数组,然后使用zip()函数来获取转置。

算法(步骤)

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

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

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

  • 使用zip()函数来打包输入数组(这里是转置矩阵)。

  • 打印输入矩阵的转置。

示例

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

# 输入矩阵
inputMatrix= [(1, 4, 2),(2, 0, 3), (4, 2, 5)]

# 打印输入矩阵
print("输入矩阵:")

# 遍历输入矩阵中的每个元素
for i in inputMatrix:
   # 打印元素
   print(i)

# 获取输入矩阵的转置
transposeMatrix = zip(*inputMatrix)

# 打印矩阵的转置
print("输入矩阵的转置:")
# 遍历上述转置矩阵的每个元素
for i in transposeMatrix:
   # 打印迭代器索引处的相应元素
   print(i)

输出

在执行时,以上程序会生成以下输出−

输入矩阵:
(1, 4, 2)
(2, 0, 3)
(4, 2, 5)
输入矩阵的转置:
(1, 2, 4)
(4, 0, 2)
(2, 3, 5)

结论

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程