我有一个这样的列表:
lista=[[1,2,3], [1,2,3,4,5,6], [1,2],]
我想得到像这样的 numpy.array ,(较短的列表元素扩展到最大长度,然后将尾部值设置为零):
array([[1,2,3,0,0,0], [1,2,3,4,5,6], [1,2,0,0,0,0],])
怎么做? numpy 中哪里有一些内置方法?
没有直接的方法使用 numpy,因为每个内部列表都有不同数量的元素。一种方法可能是使用itertools.zip_longest https://docs.python.org/3/library/itertools.html#itertools.zip_longest with a fillvalue:
fillvalue
from itertools import zip_longest np.array(list(zip_longest(*lista, fillvalue=0))).T array([[1, 2, 3, 0, 0, 0], [1, 2, 3, 4, 5, 6], [1, 2, 0, 0, 0, 0]])