如何通过给定索引列表重新排序Numpy数组?
Numpy按索引数组提取元素的高效方法
直接使用Numpy的**花式索引(Fancy Indexing)**就能完成这个需求,完全不需要循环,代码简洁且效率更高:
首先导入numpy并定义你的数组:
import numpy as np test_idxs = np.array([4, 2, 7, 5]) test_vals = np.array([13, 19, 31, 6, 21, 45, 98, 131, 11])
用索引数组直接取值:
result = test_vals[test_idxs] print(result) # 输出:array([21, 31, 131, 45])
补充说明
- 这种批量索引操作是Numpy的原生特性,底层通过C实现批量计算,比Python循环的执行效率高几个数量级。
- 索引数组可以是任意形状(比如二维),最终结果的形状会和索引数组保持一致,适配更复杂的索引需求。
内容的提问来源于stack exchange,提问作者IzaeDA
相关产品推荐
相关产品推荐

