Numpy:如何将索引数组转换为对应值的元素数组
实现方法
你要的操作是Numpy原生支持的整数数组索引功能,一行代码就能完成,不需要额外写循环:
- 首先把值数组
B转为Numpy数组,直接把索引数组A作为下标传入就能得到目标数组C
代码示例
import numpy as np # 原始索引数组和值数组,A用Python原生列表或者Numpy数组都可以 A = [1, 0, 3, 2, 0, 1] B = np.array([21, 33, 10, 2]) # 直接索引即可得到结果 C = B[A] print(C)
运行后输出结果为:[33 21 2 10 21 33]
和你预期的计算结果完全一致。
补充说明
这种索引方式的运算逻辑完全由Numpy底层C实现,比手动写Python遍历或者列表推导的执行效率高很多,处理大规模数组的时候优势尤其明显。
内容的提问来源于stack exchange,提问作者Nooo
相关产品推荐
相关产品推荐

