用于组合不等长度np的Numpy单行程序.数组为矩阵(或二维数组)



我有一个不同长度的数组列表,我想将它们组合成一个最大维度的矩阵,并在末尾填充零。例如(伪代码):

combine( [1,2,3], [4,5]) 
[[1,2,3],[4,5,0]]

这是我当前的解决方案:

max_len = max(len(xx) for xx in X) 
M = np.array( [np.concatenate([xx, np.zeros( max_len - len(xx))]) for xx in X])

对于懒惰的人来说,要打这么多字,有更好的解决办法吗?有内置函数吗?

谢谢

您可以使用itertools.izip_longest():

from itertools import izip_longest
import numpy as np
def mycombine(*args):
    return np.array(list(izip_longest(*args, fillvalue=0))).T

最新更新