我以前看过一两次,但我似乎找不到任何官方文档:Using python range
objects as indices in numpy.
import numpy as np
a = np.arange(9).reshape(3,3)
a[range(3), range(2,-1,-1)]
# array([2, 4, 6])
让我们触发一个索引错误,以确认范围不在合法索引方法的官方范围(双关语)内:
a['x']
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
现在,numpy 和它的文档之间的细微差异并非完全闻所未闻,也不一定表明该功能不是有意的(例如,请参见此处)。
那么,有人知道为什么这会起作用吗?如果它是一个预期的功能,那么确切的语义是什么/它有什么用?是否有任何 ND 概括?