Numpy数组以自身为索引取值结果与原文件内容不一致原因排查
问题成因
你用到的是NumPy的整数数组索引特性,gift_costs[gift_costs]这个写法的逻辑不是直接返回原数组,而是把gift_costs里的每个值都当做下标位置,去原gift_costs数组里提取对应位置的元素,最终将所有取出的元素拼接成新数组,所以输出结果和原文件内容完全不同。
举个简化示例方便理解:
假设arr = [10,20,30,40,50],执行arr[[0,2,4]]得到的结果就是[10,30,50],也就是依次取索引为0、2、4对应的元素。你的写法就是把gift_costs本身当做了这个索引数组,自然得到不符合预期的结果。
你示例A是直接对原数组赋值后输出,所以和原文件内容一致。
可搜索的关键词
- NumPy 整数数组索引
- numpy array 数组作为索引
- numpy 方括号传入数组的作用
- numpy index array with array
内容的提问来源于stack exchange,提问作者Aizzaac
相关产品推荐
相关产品推荐

