Edited at

2 つの配列を結合して、片方の要素に基づいてソートしたい

More than 1 year has passed since last update.

ほぼ個人用メモですが…


やりたいこと

NumPy でこれを

[2, 1, 3]

[18, 54, 43]

こうして

[[2, 18],

[1, 54],
[3, 43]]

こうしたい

[[1, 54],

[2, 18],
[3, 43]]


方法

>>> import numpy as np

>>> array_1 = np.asarray([2, 1, 3])
>>> array_2 = np.asarray([18, 54, 43])
>>> array_3 = np.column_stack((array_1, array_2))
>>> array_3
array([[ 2, 18],
[ 1, 54],
[ 3, 43]])
>>> array_4 = array_3[array_3[:, 0].argsort(), :]
>>> array_3[:, 0].argsort()
array([1, 0, 2])
>>> array_4
array([[ 1, 54],
[ 2, 18],
[ 3, 43]])


参考