在numpy中,[]和[[]]的区别是什么?

3

请问a[1]和a[[1]]有什么区别(假设a是一个numpy对象,比如数组)?如果我理解正确,使用a[[1]]可以编辑a的第一个元素,但不能用a[1]进行编辑,还有其他区别吗?a[]是查看元素,而a[[]]是复制元素,这种类似的情况是否也适用于此?如果有必要的话,我使用的是Python 3。

1个回答

3
当你说 a[1] 时,你得到的是索引为 1 的元素(第二个元素)在 a 中的值。另外,a[[1]] 不是一种特殊的语法,它只是表示“获取 a 中由列表 [1] 指示的索引处的元素”。你还可以说 a[[1, 2]] 或者使用另一个数组作为索引。实际上,a[1] 是一个单一标量元素,a[[1]] 是一个大小为1的数组(假设 a 只有一个维度)。
关于赋值,你会发现 a[1] = 2a[[1]] = 2 同样有效。这是因为 NumPy 的 广播机制 允许你无缝地匹配不同维度的对象。然而,a[1]a[[1]] 的实际维度不同,这在不同的情况下很重要。
你可以在这里了解更多关于 NumPy 索引的知识:https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接