Python中数组索引数组的作用及代码等价性疑问
问题解答
1. 是否可以直接替换成给定的代码?
不行。
原代码是从unique_y数组里按随机生成的索引抽取对应元素,而修改后的代码直接返回随机生成的索引值本身。只有当unique_y刚好是[0,1,2]这种和索引值完全对应的数组时,结果才会碰巧一致,但只要unique_y换成其他内容(比如[5,7,9]),两种写法的返回结果就完全不一样了。修改后的代码本质上丢失了从unique_y取元素的核心逻辑,所以不能这么替换。
2. y[random_indices]的操作功能是什么?
这是NumPy的整数数组索引操作,具体功能如下:
- 遍历
random_indices数组里的每一个元素,把它当作下标去y数组中取出对应位置的元素 - 最终返回一个和
random_indices形状相同的新数组,里面的元素就是按索引依次取出的结果
比如你给出的例子:
y = [0,1,2],random_indices = [2,2,1,0,2]- 依次取
y[2]、y[2]、y[1]、y[0]、y[2],最终得到结果[2,2,1,0,2]
内容的提问来源于stack exchange,提问作者shao12138
相关产品推荐
相关产品推荐

