大家好
最近突然有這需求
np array 要如何多條件排序資料呢?
例如我有一組3D座標列表
shape 為 [X, 3]
如果我想讓他先從X開始排
然後Y 然後Z 這樣
搜尋一下找到這個
import numpy as np # 要把排序順序反過來放 # nPoints[:, 0] 代表 X 座標-以此類推 newSort = np.lexsort((nPoints[:, 2], nPoints[:, 1], nPoints[:, 0])) # 原始資料 nPoints = [[38.5 16. 22.5 ] [41. 16. 19.25] [43.5 16. 22.5 ] [41. 16. 25.75] [38.5 18. 19.25] [38.5 20. 22.5 ] [38.5 18. 25.75] [41. 20. 19.25] [43.5 18. 19.25] [43.5 20. 22.5 ] [41. 20. 25.75] [43.5 18. 25.75] [41. 14. 22.5 ] [36. 18. 22.5 ] [41. 18. 16. ] [41. 22. 22.5 ] [46. 18. 22.5 ] [41. 18. 29. ]] # 排序後資料 nPoints = [[36. 18. 22.5 ] [38.5 16. 22.5 ] [38.5 18. 19.25] [38.5 18. 25.75] [38.5 20. 22.5 ] [41. 14. 22.5 ] [41. 16. 19.25] [41. 16. 25.75] [41. 18. 16. ] [41. 18. 29. ] [41. 20. 19.25] [41. 20. 25.75] [41. 22. 22.5 ] [43.5 16. 22.5 ] [43.5 18. 19.25] [43.5 18. 25.75] [43.5 20. 22.5 ] [46. 18. 22.5 ]]
給大家參考囉~
留言板
歡迎留下建議與分享!希望一起交流!感恩!