【发布时间】:2017-03-25 11:29:43
【问题描述】:
并行、逐行排序两个 numpy 矩阵的最有效方法是什么?一个玩具例子:
对这个 alpha 排序:
a = [['c', 'b', 'e', 'd'],
['a', 'd', 'b', 'e']]
然后,将其与 a 并行排序:
b = [['1', '2', '3', '4'],
['2', '1', '4', '3']]
排序后的结果:
a = [['b', 'c', 'd', 'e'],
['a', 'b', 'd', 'e']]
b = [['2', '1', '4', '3'],
['2', '4', '1', '3']]
在我的真实案例中,a 和 b 是相同大小的大型二维矩阵。
如果我使用idx = a.argsort(),我会获得索引来对 a 的每一行进行排序。这些可以一步应用于 b 吗? b = b[idx] 不工作。
【问题讨论】:
-
你的例子也是关于一维列表然后你引用二维矩阵,请给出与你正在做的相匹配的例子。
-
b[idx] 不返回错误,但内容没有排序。我将更新问题玩具示例。
-
也许这个答案(如何将 argsort 应用于 2D 数组):stackoverflow.com/a/33141247/3981745 - 嗯,晚了。浏览器未刷新。
标签: python arrays sorting numpy matrix