给出一个二维list,里面每个list的长度都不一样,比如
a =
[[1,2,3],
[2,3,4,5],
[1,2]]
希望输出
a=
[[1,2,3,0],
[2,3,4,5],
[1,2,0,0]]
实现方法很多。这里我们借助了了pandas,先将list放到pd.DataFrame里面,再转换成np.array。
import pandas as pd
import numpy as np
def list_to_array (x):
dff = pd.concat([pd.DataFrame({'{}'.format(index):labels}) for index,labels in enumerate(x)],axis=1)
return dff.fillna(0).values.T.astype(int)
测试一下:
a = [[1,2,3],
[2,3,4,5],
[1,2]]
print(a)
print(list_to_array(a))
输出:
a
Out[1]: [[1, 2, 3], [2, 3, 4, 5], [1, 2]]
list_to_array(a)
Out[2]:
array([[1, 2, 3, 0],
[2, 3, 4, 5],
[1, 2, 0, 0]])