python矩阵转置与zip(*)的使用

python矩阵转置与zip(*)的使用Python中的矩阵转置方法有如下几种:使用双重循环做(最直接,最本质的方法)importrandomrow=3column=4array=[[random.randint(0,10)for_inrange(column)]for_inrange(row)]print(“砸门先随机创建一个呗:”,array)res=[]foriinrange(column):tmp=[]forjinrange(row):tmp.

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

Python中的矩阵转置方法有如下几种:

  • 使用双重循环做(最直接,最本质的方法)

    import random
    row = 3
    column = 4
    array = [[random.randint(0, 10) for _ in range(column) ]for _ in range(row)]
    print("砸门先随机创建一个呗:", array)
    res = []
    for i in range(column):
      tmp = []
      for j in range(row):
        tmp.append(array[j][i])
      res.append(tmp)
    print("看看转置后的结果:", res)
    
    """ 砸门先随机创建一个呗: [[8, 6, 7, 0], [3, 6, 9, 8], [9, 9, 0, 9]] 看看转置后的结果: [[8, 3, 9], [6, 6, 9], [7, 9, 0], [0, 8, 9]] """
    
  • 巧借zip(*)

    print("使用zip(*)的转置结果:", list(zip(*array)))
    
    """ 砸门先随机创建一个呗: [[7, 4, 9, 5], [6, 7, 9, 9], [4, 6, 3, 4]] 使用zip(*)的转置结果: [(7, 6, 4), (4, 7, 6), (9, 9, 3), (5, 9, 4)] """
    

    如果觉得tuple看起来不对应,可以迭代修改一下:

    print("使用zip(*)的转置结果:", [list(i) for i in zip(*array)])
    
    """ 砸门先随机创建一个呗: [[0, 10, 3, 1], [2, 4, 0, 9], [3, 6, 2, 8]] 使用zip(*)的转置结果: [[0, 2, 3], [10, 4, 6], [3, 0, 2], [1, 9, 8]] """
    

    一定要注意zip()也可以实现相同的转置效果,但是它的输入参数是多个独立的可迭代对象哦,所以需要将array拆分为:[0, 10, 3, 1], [2, 4, 0, 9], [3, 6, 2, 8]作为zip()的输入参数

  • 转换为numpy,再使用np.transpose()

    import numpy as np
    nump = np.array(array)
    trans = np.transpose(nump, (1, 0))
    print("使用numpy来转置的结果:", trans.tolist())
    
    """ 砸门先随机创建一个呗: [[3, 0, 4, 3], [5, 6, 2, 0], [0, 1, 9, 9]] 使用numpy来转置的结果: [[3, 5, 0], [0, 6, 1], [4, 2, 9], [3, 0, 9]] """
    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • git切换远程分支命令_git查看对应的远程分支

    git切换远程分支命令_git查看对应的远程分支git切换远程分支将远程git仓库里的指定分支拉取到本地(本地不存在的分支)当我想从远程仓库里拉取一条本地不存在的分支时:gitcheckout-b本地分支名origin/远程分支名例如:切换远程分支gitcheckout-breleaseorigin/release-9.4###原文默认,git项目只有一个分支,就是master,我们当然可以在本地创建多个分支,并推送到远程git管理平台上,或者将远程git管理平台上的其他..

    2022年9月21日
    0
  • idea最新永久激活码2022【中文破解版】2022.02.02

    (idea最新永久激活码2022)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月31日
    85
  • vs tfs使用_win10安装vs2010不兼容

    vs tfs使用_win10安装vs2010不兼容一直是用vss的,最近突然看到,原来已经流行用vsts了(版本管理等服务用tfs)。太落伍了。故决定自己在个人电脑上安装vsts。首先在MSDN上看到,tfs2008以前要装在service系统上面,我没有,也不想去装。后来看到tfs2010几乎支持所有windows系统。故决定用现有的vs2008+tfs2010搭配。            ok,vs2008已有,打补丁sp1,下

    2022年9月23日
    0
  • PyCharm激活码永久有效PyCharm2017.2.7激活码教程-持续更新,一步到位「建议收藏」

    PyCharm激活码永久有效PyCharm2017.2.7激活码教程-持续更新,一步到位「建议收藏」PyCharm激活码永久有效2017.2.7激活码教程-Windows版永久激活-持续更新,Idea激活码2017.2.7成功激活

    2022年6月19日
    24
  • 增量表全量表拉链表区别_hive 增量数据更新

    增量表全量表拉链表区别_hive 增量数据更新一、概念增量表:记录更新周期内新增的数据,即在原表中数据的基础上新增本周期内产生的新数据;全量表:记录更新周期内的全量数据,无论数据是否有变化都需要记录;拉链表:一种数据存储和处理的技术方式,可以记录数据的历史信息,记录数据从开始一直到当前所有变化的信息。二、举例详解增量表:以页面访问数据表为例,假设该表从2020-06-01开始记录数据,按天更新,分区为dt。2020-06-01产生了三条访问数据,如下表:2020-06-02首页和商详页又产生了2条访问数据,该两条即为2020-06-

    2022年10月17日
    0
  • 学生信息管理系统登录入口_学生信息管理系统Java sql

    学生信息管理系统登录入口_学生信息管理系统Java sqlphp大作页,使用php+mysql技术,实现了基本的分页,信息查询,修改,增加,删除操作有以下几个基本页面登录页面首页修改学生基本信息修改学生学籍信息修改学生成绩信息增加学生信息源码在我的github上,欢迎大家访问https://gitee.com/zxhjames/zxh/tree/master/StudentInformationManageSystem…………………

    2022年10月2日
    0

发表回复

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

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