【问题标题】:Sort rows of matrix based on array根据数组对矩阵行进行排序
【发布时间】:2021-01-13 01:17:14
【问题描述】:

我的代码尝试根据数组对矩阵进行排序,首先我尝试从最低到最高对数组进行排序,数组中的元素数与矩阵中的行数成正比,所以当我进行冒泡排序时的数组,我想在矩阵中使用相同的冒泡排序。

代码正确排序数组,但矩阵是一团糟。

matriz = np.array(([4, 1, 6, 9], [1, 3, 0, 2], [1, 0, 0, 2], [1, 1, 4, 5], [2, 1, 4, 1]))
for i in range(len(matrix)):
    n = int(len(matrix[i]))
    for j in range(n):
        average[i] += (matrix[i][j]/n)

print(average)
for a in range(len(average)-1):
    for b in range(a+1, len(average)):
        if average[a] > average[b]:
            aux = average[a]
            average[a] = average[b]
            average[b] = aux
            auxMatrix = matrix[a]
            matrix[a] = matrix[b]
            matrix[b] = auxMatrix

print(average)
print(matrix)

【问题讨论】:

标签: python arrays python-3.x matrix


【解决方案1】:

如果您使用的是 numpy,不妨使用它的高效功能:

sorted_matrix = matrix[np.argsort(matrix.mean(axis=1))]

【讨论】:

    猜你喜欢
    • 2020-11-04
    • 2021-06-29
    • 1970-01-01
    • 2012-08-17
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    相关资源
    最近更新 更多