【基础入门题072】转置矩阵

简介: 【基础入门题072】转置矩阵

【基础入门题】2022.01.07

转置一个m行n列的矩阵,即把矩阵每一个元素的行列标号互换。

编程语言:包括但不限于Python

题目来源:派森特给站每日刷题频道    


方法一:双重循环交接行列

m,n = map(int, input('请输入矩阵的行和列(用空格隔开):').split())
Array = [[0 for i in range(m)] for j in range(n)] #初始结果矩阵为0矩阵
t = [[i+1+j*n for i in range(n)] for j in range(m)] #转置前的矩阵
for i in range(n):
    for j in range(m):
        Array[i][j]=t[j][i] #交换行列标号
print('转置前:')
for a in t:
    for b in a:
        print(str(b).rjust(3), end='')
    print()
print('转置后:')
for a in Array:
    for b in a:
        print(str(b).rjust(3), end='')
    print()

   输出结果:


   请输入矩阵的行和列(用空格隔开):4 6

      1   2   3   4   5   6

      7   8   9 10 11 12

    13 14 15 16 17 18

    19 20 21 22 23 24

     1   7 13 19

     2   8 14 20

     3   9 15 21

     4 10 16 22

     5 11 17 23

     6 12 18 24



方法二:行列式

m,n = map(int, input('请输入矩阵的行和列(用空格隔开):').split())
t = [[i+1+j*n for i in range(n)] for j in range(m)] #转置前的矩阵
Array = [[t[i][j] for i in range(len(t))] for j in range(len(t[0]))] #推导式一行搞定
print('转置前:')
for a in t:
    for b in a:
        print(str(b).rjust(3), end='')
    print()
print('转置后:')
for a in Array:
    for b in a:
        print(str(b).rjust(3), end='')
    print()



方法三:内置函数zip()

m,n = map(int, input('请输入矩阵的行和列(用空格隔开):').split())
t = [[i+1+j*n for i in range(n)] for j in range(m)] #转置前的矩阵
Array = [list(_) for _ in zip(*t)] #zip()超级简单
print('转置前:')
for a in t:
    for b in a:
        print(str(b).rjust(3), end='')
    print()
print('转置后:')
for a in Array:
    for b in a:
        print(str(b).rjust(3), end='')
    print()



方法四:numpy库函数

import numpy as np
m,n = map(int, input('请输入矩阵的行和列(用空格隔开):').split())
t = np.arange(1,m*n+1) #或:t = np.array([*range(1,m*n+1)])
t = t.reshape(m,n) #一维数组reshape成二维数组
Array = t.T #一个.T就能转置,或者使用:Array = np.transpose(t)
print('转置前:')
print(t)
t = [list(_) for _ in t] #转内置列表格式
print('转置前标准格式:')
for a in t:
    for b in a:
        print(str(b).rjust(3), end='')
    print()
print('转置后:')
print(Array)
Array = [list(_) for _ in Array]
print('转置后标准格式:')
for a in Array:
    for b in a:
        print(str(b).rjust(3), end='')
    print()




目录
相关文章
|
7月前
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
155 7
|
7月前
线性代数——(期末突击)矩阵(下)-习题篇(初等变换求逆矩阵、矩阵乘法、求矩阵方程、求线性方程组、解齐次线性方程组)
线性代数——(期末突击)矩阵(下)-习题篇(初等变换求逆矩阵、矩阵乘法、求矩阵方程、求线性方程组、解齐次线性方程组)
111 0
|
8月前
|
索引
转置矩阵-暴力解法&一行代码
转置矩阵-暴力解法&一行代码
49 0
|
移动开发
学习笔记: 线性代数-矩阵对角化
线性代数个人学习笔记
133 0
|
机器学习/深度学习
学习笔记: 线性代数-矩阵的QR分解
线性代数个人学习笔记
197 0
|
机器学习/深度学习 算法 图形学
矩阵和线性代数的应用
矩阵和线性代数是数学中重要的概念,它们被广泛应用于物理、工程、计算机科学、经济学等众多领域。本文将讨论矩阵和线性代数的一些基本概念以及它们在实际应用中的重要性和影响。
337 0
|
开发者
安索夫矩阵 | 学习笔记
快速学习安索夫矩阵。
523 0
安索夫矩阵 | 学习笔记
|
索引
leetcode题解 - 转置矩阵
给你一个二位整数数组matrix,返回matrix的转置矩阵。 矩阵的转置是指将矩阵的主对角线反转,交换矩阵的行索引与列索引
185 0
leetcode题解 - 转置矩阵

热门文章

最新文章

下一篇
开通oss服务