python - 使用 numpy.argsort 的结果对数组进行排序
问题描述
像下面描述的就地重新排列不是一个好的目标,因为正如 hpaulj 指出的那样,“就地写入会相互影响,覆盖你的一些数据”。我会留下这个,但万一其他人有狭隘的视野并且不像我那样考虑这个。
我知道numpy.ndarray.sort可以对 numpy 数组进行就地排序。但是,如果我想用与第一个相同的排序索引对 2 个或更多数组进行排序怎么办?我知道我们可以使用 numpy.argsort() 来获取排序索引并执行以下操作:
sortInd = np.argsort(X)
X = X[sortInd]
Y = Y[sortInd]
但是,据我了解,这将暂时创建数组 X 和 Y 的副本(也许我在这里错了)。那么如何使用排序索引列表进行就地排序呢?就像是:
sortInd = np.argsort(X)
X.rearrange(sortInd)
Y.rearrange(sortInd)
解决方案
推荐阅读
- javascript - 不能将 @johmun/vue-tags-input 与 VueJS 和 Laravel/Spark 一起使用
- r - R 中创建新变量名和滞后的嵌套循环
- ios - 是否可以在 Swift 中制作视频通话和直播应用程序?
- mysql - 有没有办法在mysql中创建自动填充表?
- listview - JavaFX ListView 自定义单元格
- c# - C# 使用 CompareTo 对字典进行排序不适用于超过 16 个项目的字典
- sql-server - 我希望以更可悲的方式提出这个条件
- python - 有没有办法在 Heroku 部署上运行两个进程?
- java - ProcessBuilder 执行 java.exe
- arduino - zigbee 上的 Pocketsphinx