2024-05-19 14:14:08 发布
网友
在Python中,是否有快速的方法来对矩形2D矩阵进行换位(不涉及任何库导入)。?
如果我有阵列
X=[ [1,2,3], [4,5,6] ]
我需要一个数组Y,它应该是X的转置版本,所以
Y=[ [1,4], [2,5], [3,6] ]
简单:Y=zip(*X)
>>> X=[[1,2,3], [4,5,6]] >>> Y=zip(*X) >>> Y [(1, 4), (2, 5), (3, 6)]
编辑:要回答有关zip(*X)是什么意思的注释中的问题,以下是python手册中的一个示例:
>>> range(3, 6) # normal call with separate arguments [3, 4, 5] >>> args = [3, 6] >>> range(*args) # call with arguments unpacked from a list [3, 4, 5]
所以,当X是[[1,2,3], [4,5,6]]时,zip(*X)是zip([1,2,3], [4,5,6])
X
[[1,2,3], [4,5,6]]
zip(*X)
zip([1,2,3], [4,5,6])
如果您使用的是矩阵,那么您几乎肯定应该使用numpy。这将比纯Python代码执行数字操作更简单、更有效。
>>> x = [[1,2,3], [4,5,6]] >>> x = numpy.array(x) >>> x array([[1, 2, 3], [4, 5, 6]]) >>> x.T array([[1, 4], [2, 5], [3, 6]])
“不涉及任何图书馆进口”是一个愚蠢的、非生产性的要求。
>>> X = [1,2,3], [4,5,6]] >>> zip(*X) [(1,4), (2,5), (3,6)] >>> [list(tup) for tup in zip(*X)] [[1,4], [2,5], [3,6]]
如果内部对绝对需要列表,请使用第二个。
简单:Y=zip(*X)
编辑:要回答有关zip(*X)是什么意思的注释中的问题,以下是python手册中的一个示例:
所以,当
X
是[[1,2,3], [4,5,6]]
时,zip(*X)
是zip([1,2,3], [4,5,6])
如果您使用的是矩阵,那么您几乎肯定应该使用numpy。这将比纯Python代码执行数字操作更简单、更有效。
“不涉及任何图书馆进口”是一个愚蠢的、非生产性的要求。
如果内部对绝对需要列表,请使用第二个。
相关问题 更多 >
编程相关推荐