Linux 矩阵的python程序转置
二维矩阵可以用Python行表示为列表列表:每个内部列表表示矩阵的一行。例如,矩阵Linux 矩阵的python程序转置,linux,python-3.x,Linux,Python 3.x,二维矩阵可以用Python行表示为列表列表:每个内部列表表示矩阵的一行。例如,矩阵 1 2 3 4 5 6 将表示为[[1,2,3],[4,5,6]] 矩阵的转置使每一行变成一列。例如,上面矩阵的转置是 1 4 2 5 3 6 编写一个Python函数transpose(m),该函数使用此行表示法将二维矩阵作为输入,并使用相同的表示法返回矩阵的转置。这是我的go-to方法(使用): 警告:您将tuples作为行(可能需要将其转换为lists)。这可以通过以下方式实现: m
1 2 3
4 5 6
将表示为[[1,2,3],[4,5,6]]
矩阵的转置使每一行变成一列。例如,上面矩阵的转置是
1 4
2 5
3 6
编写一个Python函数transpose(m),该函数使用此行表示法将二维矩阵作为输入,并使用相同的表示法返回矩阵的转置。这是我的go-to方法(使用):
警告:您将tuple
s作为行(可能需要将其转换为list
s)。这可以通过以下方式实现:
mat_t = list(list(row) for row in zip(*mat))
print(mat_t)
# [[1, 4], [2, 5], [3, 6]]
作为函数编写,这将是:
def transpose(mat):
return list(list(row) for row in zip(*mat))
正如您指定的标记一样,下面是简短的datamash一行:
datamash -W transpose <file
至于Python解决方案,我将使用最适合处理矩阵和数字数据的模块:
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
transposed = a.transpose()
print(transposed)
输出:
1 4
2 5
3 6
[[1 4]
[2 5]
[3 6]]
什么不起作用?你能再具体一点吗?(我的答案中当前的输出是从Python3.5生成的,所以它可以正常工作)。
[[1 4]
[2 5]
[3 6]]