问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python实现矩阵转置的方法分析

发布网友 发布时间:2022-04-27 07:16

我来回答

1个回答

热心网友 时间:2022-04-18 07:01

Python实现矩阵转置的方法分析
本文实例讲述了Python实现矩阵转置的方法。分享给大家供大家参考,具体如下:
前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加。例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再添加[5, 6]扩充为[[1, 3, 5], [2, 4, 6]]等等。
其实不动脑筋的话,用个二重循环很容易写出来:
def trans(m):
a = [[] for i in m[0]]
for i in m:
for j in range(len(i)):
a[j].append(i[j])
return a
m = [[1, 2], [3, 4], [5, 6]] # 想象第一个列表是原始的,后面的是往里添加的
print trans(m) # result:[[1, 3, 5], [ 2, 4, 6]]
然而不管怎么看这种代码都很丑。
仔细看了一下m这种结构。等等,这不是字典的iteritems()的结果么?如果dict(m),那么结果——不就是keys()和values()么?
于是利用字典转换一下:
def trans(m):
d = dict(m)
return [d.keys(), d.values()]

可是再仔细想想,这里面有bug。如果添加列表的第一个元素相同,也就是转化之后dict的key相同,那肯定就不行了呀!况且,如果原始列表不是两个,而是多个,肯定不能用字典的呀!于是这种方法作罢,还是好好看看列表的形状。
然后又是一个不小心的发现:

这种转置矩阵的即时感是怎么回事?
没错,这个问题的本质就是求解转置矩阵。于是就简单了,还是用个不动脑筋的办法:
def trans(m):
for i in range(len(m)):
for j in range(i):
m[i][j], m[j][i] = m[j][i], m[i][j]
return m
m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print trans(m)

其实还是有点bug的,看起来是好用的,然而这个矩阵要求行列长度相同才行。
最后,群里某大神说:如果只是转置矩阵的话,直接zip就好了。这才想起来zip的本质就是这样的,取出列表中的对应位置的元素,组成新列表,正是这个题目要做的。
所以最终,这个题目(转置矩阵)的python解法就相当奇妙了:
def trans(m):
return zip(*d)
没错,就这么简单。python的魅力。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
DLP无拼接大屏幕简介 DLP背投大屏幕技术产品描述 沈阳都市绿洲20个人吃饭,要多少钱,一般化 东方最大的火山 中国境内有火山吗?中国火山之王是谁? 大陆最大的火山 中国哪个火山最大 胆汁反流性胃炎能根治吗? 紫叶酢浆草有没有水晶萝卜 群信用星级恢复技巧 特怕蟑螂老鼠,蜥蜴蛇倒不怕。这么怎么一回事。 我家养了蜥蜴,会招来老鼠吗 请问知道人士 我家有张粘老鼠的贴粘到了只蜥蜴 可它小小身体上粘满了胶该怎么帮它弄掉 很可怜的 眼神好无辜 家里出现蛇是好还是坏 我家里有老鼠,蟑螂,蜘蛛,蜈蚣,有乜办法根治 如何全面去除家里的“蛇虫鼠蚁”? 家中厕所惊现巨蜥,从下水道爬出被卡住,如何才能赶走它? 房子贷款无力偿还怎么办呢? 平安银行全款车贷款配偶不在场签字可以吗 车贷还完了,需要解押,必须本人去吗 车贷结清需不需要本人签字? 车贷银行放款需要额外人签字吗? 共同借款人必须到场签字吗 梦见一个身子是豹子头是老鼠的动物,很多很多在路上,吓得我不敢走? 夫妻一方作为其它人共同还款人,一定需要夫妻两个都要到场签字吗? 你好,求解“梦见豹子,喂它火腿肠240斤,温顺,躲避,又遇到,又喂少量火腿肠,没有伤人.” 做梦梦到豹子堵门口不让出去,只要不出门它就不伤人是什么意思? 喝酒喝多了,第二天早上还难受,想吐,怎么办?怎么能把酒味去掉,感觉说话都是酒的味道 喝酒吐了之后嘴里全是酒味怎么办 喝酒第二天吐的像是啤酒,一股酒味 能够咬死老鼠和蜥蜴,非洲大陆最残暴的昆虫大王虎甲是什么样? 淘宝联盟怎样带图片和链接一起发送?请指教 芹菜适合炒什么一起吃 什么蜥蜴可以吃老鼠? 我样了只蜥蜴,给他喂老鼠和面包虫它都不吃,有好几天没吃东西了,我好担心他会死掉,怎么办啊? python 字符串如何变成矩阵进行矩阵转置 淘宝联盟分享宝贝到qq怎么文字图片一起发像图片的那种哪位能给我一点指点 有一种长得像老鼠,蛇的克星叫什么名字 Python如何将txt或者csv文件的数据转成矩阵? python怎么将一个未知大小的矩阵转为一维的 什么能和芹菜一起炒好吃 芹菜能炒什么一起吃 芹菜和什么一起炒比较好吃?? python如何将2个相等长度的数组转化为矩阵 下载了个淘宝联盟,推广到自己的群里为什么一键转发只能发商品图片和 “在此页上的ActiveX控件和本页上的其它部分的交互可能不安全。你想允许这种交互吗?”ie设置不能改善。 梦见和同性接吻, 专业心理工作者进 在此网页上的Activex控件和本页上的其它部分的交互可能不安全,你想允许这种交互吗? 是什么意思 请问淘宝联盟具体是怎么操作的?是按照成交价格付费呢还是点击付费的? 打开软件总是弹出window警告:在此页上的Activex控件和本页上的其他部分的交互可能不安全.