Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 矩阵的python程序转置_Linux_Python 3.x - Fatal编程技术网

Linux 矩阵的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

二维矩阵可以用Python行表示为列表列表:每个内部列表表示矩阵的一行。例如,矩阵

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]]