来自具有不同长度的列表列表的 NumPy 数组(填充)[重复]

2024-01-07

我有一个这样的列表:

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:

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]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自具有不同长度的列表列表的 NumPy 数组(填充)[重复] 的相关文章

随机推荐