[英]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.