繁体   English   中英

在Python 3中对矩阵的行(或列)进行排序

[英]Sort rows (or columns) of a matrix in Python 3

我用Python 3.3编写了这段代码来输入矩阵:

matrix = []
loop = True
while loop:
    line = input()
    if not line: 
        loop = False
    values = line.split()
    row = [int(value) for value in values]
    matrix.append(row)

我正在尝试找到一种无需使用numpy即可对矩阵的列或行进行排序的方法。 我尝试了这个:

matrix = zip(*matrix)
matrix.sort(key=lambda x: x[1])

但这根本不起作用。 同样,例如,行或列将使用如下排序算法进行排序:

inc = len(list) // 2
while inc:
    for i, el in enumerate(list):
        while i >= inc and list[i - inc] > el:
            list[i] = list[i - inc]
            i -= inc
        list[i] = el
    inc = 1 if inc == 2 else int(inc * 5.0 / 11)

您可以使用sort直接对行进行sort

>>> matrix = [[9, 1, 8], [2, 7, 3], [6, 4, 5]]
>>> sort(matrix)
array([[1, 8, 9],
       [2, 3, 7],
       [4, 5, 6]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM