如何基于自定义索引快速重塑Python数组元素?
最快实现数组按自定义索引重塑的方式
原生Python列表场景
对于普通Python列表,列表推导式是最快的实现方式——它是Python底层优化过的语法,比手动循环append效率高得多:
A = [1, 2, 3, 4, 5] my_ind = [4, 0, 2, 3, 1] B = [A[i] for i in my_ind] # 输出 B = [5, 1, 3, 4, 2]
大数据量场景(使用NumPy)
如果处理的是大规模数组,优先用NumPy的直接索引访问。NumPy基于C实现批量操作,速度比纯Python代码快几个数量级:
import numpy as np A = np.array([1, 2, 3, 4, 5]) my_ind = [4, 0, 2, 3, 1] B = A[my_ind] # 输出 B = array([5, 1, 3, 4, 2])
内容的提问来源于stack exchange,提问作者sey eeet
相关产品推荐
相关产品推荐

