私は2つの派手な配列を持っています。1つはN×M、もう1つはN×1です。最初のリストをM次元のいずれかでソートできるようにしたいのですが、リストを同じ順序に保ちたいです(つまり、行1と15を交換した場合) list1 の場合、list2 の 1 行目と 15 行目も入れ替えます。)
例えば:
import numpy as np
a = np.array([[1,6],[3,4],[2,5]])
b = np.array([[.5],[.8],[.2]])
次に、たとえば、各行の最初の要素で並べ替えて、次のようにしたいと思いa
ます。
a = [[1,6],[2,5],[3,4]]
b = [[.5],[.2],[.8]]
または、たとえば、各行の 2 番目の要素で並べ替えて、次のように指定a
します。
a = [[3,4],[2,5],[1,6]]
b = [[.8],[.2],[.5]
この質問のように、両方のリストが一次元である同様の問題がたくさんあります。または、リストのリストの並べ替えに関する質問、たとえばthis one。しかし、探しているものが見つかりません。
最終的に私はこれを機能させました:
import numpy as np
a = np.array([[1,6],[3,4],[2,5]])
b = np.array([[.5],[.8],[.2]])
package = zip(a,b)
print package[0][1]
sortedpackage= sorted(package, key=lambda dim: dim[0][1])
d,e = zip(*sortedpackage)
print d
print e
これで、必要に応じて d と e が生成されます。
d = [[3,4],[2,5],[1,6]]
e = [[.8],[.2],[.5]
しかし、理由がわかりません。は print package[0][1]
0.5 を与えます - これは私がソートしている要素ではありません。どうしてこれなの?私がやっていることは堅牢ですか?