Python 不截断不规则矩阵的转置

Python 不截断不规则矩阵的转置,python,matrix,transpose,Python,Matrix,Transpose,我有一个300x100行的大矩阵。问题是有些行有99列,而不是100列 我尝试使用zip作为示例: a = [[1,2,3],[4,5,6]] b = [[1,2,3],[4,5]] print zip(*a) print zip(*b) 但生成的矩阵被截断为元素数最少的矩阵,因此上述示例的结果为: [(1, 4), (2, 5), (3, 6)] [(1, 4), (2, 5)] 还尝试了numpy和transpose,但由于矩阵不规则,因此不会对其进行转置 我需要转置这个大矩阵,得到一

我有一个300x100行的大矩阵。问题是有些行有99列,而不是100列

我尝试使用zip作为示例:

a = [[1,2,3],[4,5,6]]
b = [[1,2,3],[4,5]]

print zip(*a)
print zip(*b)
但生成的矩阵被截断为元素数最少的矩阵,因此上述示例的结果为:

[(1, 4), (2, 5), (3, 6)]
[(1, 4), (2, 5)]
还尝试了
numpy
transpose
,但由于矩阵不规则,因此不会对其进行转置

我需要转置这个大矩阵,得到一个100x300矩阵,避免一个截断矩阵。那么,是否已经有任何python函数或模块可以返回转置而不截断它?

您可以(在python 3.X
zip_longest
中)使用
fillvalue
参数来填充缺少的项:

>>> list(izip_longest(*b,fillvalue=0))
[(1, 4), (2, 5), (3, 0)]
您可以使用(在python 3.X中
zip_longest
)和
fillvalue
参数来填充缺少的项:

>>> list(izip_longest(*b,fillvalue=0))
[(1, 4), (2, 5), (3, 0)]
您可以使用(在python 3.X中
zip_longest
)和
fillvalue
参数来填充缺少的项:

>>> list(izip_longest(*b,fillvalue=0))
[(1, 4), (2, 5), (3, 0)]
您可以使用(在python 3.X中
zip_longest
)和
fillvalue
参数来填充缺少的项:

>>> list(izip_longest(*b,fillvalue=0))
[(1, 4), (2, 5), (3, 0)]

我会修理产生不规则“矩阵”的任何东西。@切普纳,谢谢你的建议,我会考虑的。我会修理产生不规则“矩阵”的任何东西。@切普纳,谢谢你的建议,我会考虑的。我会修理产生不规则“矩阵”的任何东西。@谢普纳,谢谢你的建议。我会考虑的。我会修理任何产生不规则“矩阵”的东西。Chpne,谢谢你的建议,我会考虑的。