如何获得此矩阵的转置。任何更简单,算法的方法来执行此操作...
第一个问题:
Input a=[[1,2,3],[4,5,6],[7,8,9]]
Expected output a=[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
第二个问题:
Zip给我下面的输出如下所示,当我不知道数组中有多少元素时我怎么能拉链,在这种情况下我知道3个元素a [0],a [1],a [2]但我如何压缩[n]元素
>>> zip(a[0],a[1],a[2])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
答案 0 :(得分:17)
使用zip(*a)
:
>>> zip(*a)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
工作原理:zip(* a)等于zip(a [0],a [1],a [2])。
答案 1 :(得分:14)
问题答案:
>>> import numpy as np
>>> first_answer = np.transpose(a)
>>> second_answer = [list(i) for i in zip(*a)]
感谢afg帮忙
答案 2 :(得分:3)
您可以使用numpy.transpose
>>> import numpy
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> numpy.transpose(a)
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
答案 3 :(得分:1)
解决方案是使用tuple()
函数。
以下是您的情况下的示例:
a = [[1,2,3],[4,5,6],[7,8,9]]
output = tuple(zip(*a))
print(output)
答案 4 :(得分:1)
您可以使用list(zip(*a))
。
使用*a
,您的列表列表可以具有任意数量的条目。
答案 5 :(得分:0)
尝试用此替换适当的变量
>> regexprep(filename, '\.', '_old.')
ans =
'my_old.file_old.ext'