繁体   English   中英

如何在 python 中用另一个列表的行切换列表的列

[英]how to switch columns of a list with rows of another list in python

我有一个包含一些 numpy arrays 的列表。 我想切换此列表的行和列。 我的输入列表是:

array=[[np.array([[1.,2.]]), np.array([[5.,6.]]), np.array([[7.,8.]])],\
       [np.array([[10.,20.]]), np.array([[50.,60.]]), np.array([[70.,80.]])],\
       [np.array([[100.,200.]]), np.array([[500.,600.]]), np.array([[700.,800.]])]]

我的array是一个包含三个列表的列表。 每个列表还有三个 numpy arrays。 我想重新排列这三个列表。 我希望我的第一个列表是第一个列表的第一个数组,第二个列表的第一个数组和第三个列表的第一个数组。 在第二个列表中,我想要第一个列表的第二个数组,第二个列表的第二个数组和第三个列表的第二个数组。 对于第三个列表,我想要第一、第二和第三个列表中的第三个 arrays。 我的意思是我想得到:

[[np.array([[1.,2.]]), np.array([[10.,20.]]), np.array([[100.,200.]])],\
 [np.array([[5.,6.]]), np.array([[50.,60.]]), np.array([[500.,600.]])],\
 [np.array([[7.,8.]]), np.array([[70.,80.]]), np.array([[700.,800.]])]]

我试过了:

switched=[]
for i in range (len(array)-1):
    for j in range (len (array[i])):
        switched.append ([array[i][j], array[i+1][j]])

但它并没有给我想要的东西。 如果有人帮助我解决这个问题,我将不胜感激。

如果您的列表大小相同switched = [[array[j][i] for j in range(len(array))] for i in range(len(array[0]))]应该可以解决问题。

1:可以使用zip内置python的function来切换行列。

array_tranformed = [list(column) for column in zip(*array)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM