gpt4 book ai didi

python - 逐行并行排序两个numpy矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:10 24 4
gpt4 key购买 nike

并行排序两个 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']]

在我的真实案例中,ab 是相同大小的大型二维矩阵。

如果我使用 idx = a.argsort(),我会获得索引来对 a 的每一行进行排序。这些可以一步应用于 b 吗? b = b[idx] 不工作。

最佳答案

您可以使用 advanced indexing -

idxx = np.arange(a.shape[0])[:,None],a.argsort(1)
a_out = a[idxx]
b_out = b[idxx]

sample 运行-

In [75]: a
Out[75]:
array([['b', 'c', 'd', 'e'],
['a', 'b', 'd', 'e']],
dtype='|S1')

In [76]: b
Out[76]:
array([['2', '1', '4', '3'],
['2', '4', '1', '3']],
dtype='|S1')

In [77]: a_out
Out[77]:
array([['b', 'c', 'd', 'e'],
['a', 'b', 'd', 'e']],
dtype='|S1')

In [78]: b_out
Out[78]:
array([['2', '1', '4', '3'],
['2', '4', '1', '3']],
dtype='|S1')

关于python - 逐行并行排序两个numpy矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40544505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com