python - Python:当第一个数组被排序时,如何使第二个数组的索引与第一个数组的索引匹配?
问题描述
我有两个 Numpy 数组:a: [2,5,3,7,9,1]
和b: [1,2,3,4,5,6]
. 我想对 a 进行排序,并以b
与索引相同的方式拥有 shift元素a
。在这种情况下,a
将成为[1,2,3,5,7,9]
并且b
将成为[6,1,3,2,4,5]
。我知道如何使用np.sort
to sort a
,但我将如何重新安排b
?
解决方案
使用 NumPy 的argsort
:
>>> b[a.argsort()]
array([6, 1, 3, 2, 4, 5])
没有 NumPy 的替代方案:
>>> a, b = zip(*sorted(zip(a, b)))
>>> a
(1, 2, 3, 5, 7, 9)
>>> b
(6, 1, 3, 2, 4, 5)
推荐阅读
- python - 在 Ariadne 中使用来自 Apollo 的 BatchHttpLink
- windows - 带有 Edge 的 Windows 10 Pro Kiosk - 如何跳过打印对话框
- hibernate - 当 jpa 查询在数据库中找不到行时出现空指针异常
- javascript - Firebase rtdb 按服务器值递增服务器值?
- keras - tf.keras.layers 做什么?
- javascript - 当组件在 Vuejs 中再次渲染时如何保持更改
- node.js - Angular 从 5 升级到 6 - 未创建 Angular.json
- c# - 将信用卡日期格式 MM/yy 验证为 Valid Month 和 Year 。ASP.NET 核心
- python - 为什么 Sounddevice InputStream 的录音会中断?
- authentication - 我们如何从应用程序 B 访问应用程序“A”的 API。如果两者都在 Auth0 的不同租户中