说我有一个numpy数组df
的数组,我想列出连续的行对吗?我该怎么办?
我只知道如何一次列出每一行并将它们组合成这样的列表:z=[x for x in df]
。然后我会做[np.vstack(z[i],z[i+1]) for i in range(len(z))]
。
我只是想知道是否有Python方式可以做到这一点。
例如我的df
array([[1., 1., 1., 0., 0., 0., 1., 0., 1.],
[0., 2., 0., 0., 6., 0., 0., 2., 0.],
[0., 2., 0., 0., 6., 0., 0., 2., 0.],
[0., 3., 4., 9., 1., 2., 2., 1., 8.],
[0., 0., 5., 0., 0., 0., 5., 9., 0.]])
我想一次返回成对的连续数组。
***更新
好的,现在我要返回一个数据列,其中的列是 (该行的前六个条目,第8个条目,第7个条目,第9个条目和下一行的前六个条目)。
当我做pd.DataFrame([[np.array([df1[1,:,:][j][:6],df1[1,:,:][j][7],df1[1,:,:][j][6],df1[1,:,:][j][8],df1[1,:,:][j+1][:6]])] for j in range(len(df1[1,:,:])-1)])
时,看起来很好,我得到了
0
0 [[1.0, 1.0, 1.0, 0.0, 0.0, 0.0], 0.0, 1.0, 1.0...
1 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...
2 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...
3 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...
4 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, 0.0, 0.0...
。
但是,当我这样做
pd.DataFrame([[np.array([df1[1,:,:][j][:6],df1[1,:,:][j][7],df1[1,:,:][j][6],df1[1,:,:][j][8],df1[1,:,:][j+1][:6]])] for j in range(len(df1[1,:,:])-1)],columns=['s','a','r','absorb','ns'])
(唯一的区别是我现在提供列名),但出现错误
AssertionError: 5 columns passed, passed data had 1 columns.
我该如何解决?谢谢。