-
x[x[:,1].argsort()]
サンプル実行 -
In [768]: x
Out[768]:
array([[[1, 2, 3], 1],
[[2, 3, 4], 8],
[[3, 4, 5], 3],
[[4, 5, 6], 2]], dtype=object)
In [769]: x[x[:,1].argsort()]
Out[769]:
array([[[1, 2, 3], 1],
[[4, 5, 6], 2],
[[3, 4, 5], 3],
[[2, 3, 4], 8]], dtype=object)
あなたが最初の要素内の要素の数が異なる場合は、スライスは動作しませんし、我々はそのようなのためlist-comprehension
を使用することができます例のように -
x[np.argsort([i[1] for i in x])]
サンプルラン -
In [782]: x
Out[782]:
array([[[1, 2, 3], 1],
[[2, 3, 4, 6], 8],
[[3, 4, 5], 3],
[[4, 5, 6], 2]], dtype=object)
In [783]: x[np.argsort([i[1] for i in x])]
Out[783]:
array([[[1, 2, 3], 1],
[[4, 5, 6], 2],
[[3, 4, 5], 3],
[[2, 3, 4, 6], 8]], dtype=object)