首先,我想指出我的问题与这个问题不同:Sort a numpy matrix based on its对角线
\n\n问题如下:\n假设我有一个 numpy 矩阵
\n\nA=\n\n5 7 8\n\n7 2 9\n\n8 9 3\nRun Code Online (Sandbox Code Playgroud)\n\n我想根据矩阵的对角线对矩阵进行排序,然后根据它重新排列矩阵元素。这样现在
\n\nsorted_A:\n\n2 9 7\n\n9 3 8\n\n7 8 5\nRun Code Online (Sandbox Code Playgroud)\n\n注意:
\n\n(1). 对角线已排序
\n\n(2)。其他元素(非对角线)由它重新调整。怎么办?\n因为 diag(A)= [5,2,3] & diag(sorted_A)=[2,3,5] \n所以行/列索引 A=[0,1,2] 变为 [1,2, 0]在sorted_A中。
\n\n到目前为止,我使用蛮力提取对角线元素,获取索引 O(N\xc2\xb2),然后重新排列矩阵(另一个 O(N\xc2\xb2))。我想知道是否有任何有效/优雅的方法来做到这一点。我感谢我能得到的所有帮助。
\n