我有一个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函数或模块将返回转置而不截断它?
答案 0 :(得分:3)
您可以使用itertools.zip_longest
(在python 3.X zip_longest
中)使用fillvalue
参数填充错过的项目:
>>> list(izip_longest(*b,fillvalue=0))
[(1, 4), (2, 5), (3, 0)]