python中矩阵转置4种方法「建议收藏」

python中矩阵转置4种方法「建议收藏」文章目录1.使用双重循环2.使用列表表达式3.使用zip函数4.使用numpy模块1.使用双重循环#python双重循环arr=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]arr2=[]#数组的第二维维度foriinrange(len(arr[0])):temp=[]#数组的第一维维度forjinrange(le

大家好,又见面了,我是你们的朋友全栈君。

1. 使用双重循环

# python 双重循环

arr = [[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]]

arr2 = []
# 数组的第二维维度
for i in range(len(arr[0])):
    temp = []
    # 数组的第一维维度
    for j in range(len(arr)):
        temp.append(arr[j][i])
    arr2.append(temp)
print(arr2)

'''
# 输出结果为:
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
'''

2. 使用列表表达式

# python 列表表达式
# 使用嵌套的列表表达式
arr = [[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]]
# i 为第二个维度,j 为第一个维度
arr2 = [[arr[j][i] for j in range(len(arr))] for i in range(len(arr[0]))]
print(arr2)
'''
# 输出结果为:
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
'''

3. 使用zip函数

# python zip函数
arr = [[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]]
# zip(* )在这里是解压的作用
# 将arr 看做是一个打包后的数组
arr2 = zip(* arr)
print(list(arr2))
'''
# 输出结果为:
[(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)]
'''

4. 使用numpy模块

# 使用numpy转置
import numpy as np

arr = [[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]]
arr = np.array(arr)
# 这里可以三种方法达到转置的目的
# 第一种方法
print(arr.T)
# 第二种方法
print(arr.transpose())
# 第三种方法
print(arr.swapaxes(0, 1))
# 上面三种方法等价
'''
# 三种方法的输出结果均为:
[[ 1  4  7 10]
 [ 2  5  8 11]
 [ 3  6  9 12]]
'''
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137233.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 编写java判断闰年_Java 判断闰年代码实例

    编写java判断闰年_Java 判断闰年代码实例importjava.util.Scanner;/*5.1判断闰年(时间:20分钟)5.1.1作业任务(1)由用户输入任意一个年份,能被4整除但不能被100整除,或者能被400整除,是闰年。(结果:输出闰年或平年)5.1.2任务要求(1)本题仅要求判断一个年份是否为闰年。5.1.3难点提示用?:运算符条件运算符是三目运算符,其格式为:表达式?语句1:语句2;其中表达式的值是布尔类型,…

    2022年7月17日
    8
  • Asterisk 操作mysql数据库的应用

    Asterisk 操作mysql数据库的应用

    2021年5月7日
    105
  • 求生之路2机枪mod_求生之路2好看的枪械mod名字

    求生之路2机枪mod_求生之路2好看的枪械mod名字动态子弹(弹匣)数量修改工具:GCFScape、notepad++、vpk.exe自己在搜索引擎输入文件名找资源教程:教程均假设修改smg的静态子弹和动态子弹,其他枪械修改一样,只不过修改对象不同。1.先找出武器原始的数据文件(1).打开GCFScape,左上角File-open。找到“\Steam\SteamApps\common\Left4Dead2\left4dead…

    2025年6月29日
    1
  • pycharm2021最新激活码(最新序列号破解)

    pycharm2021最新激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    197
  • spdlog使用

    spdlog使用目录Spdlog优点Example简单封装与使用使用中遇到的问题Spdlog优点只需包含头文件 无需依赖第三方库 支持跨平台 支持多线程 源码地址:https://github.com/gabime/spdlog Example////Copyright(c)2015GabiMelman.//DistributedundertheMITLicense(http://opensource.org/licenses/MIT)/.

    2022年6月23日
    165
  • P2192 HXY玩卡片

    P2192 HXY玩卡片

    2022年3月7日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号