我以前见过它一两次,但我似乎找不到任何关于它的官方文档:Using pythonrange
对象作为 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 及其文档之间的细微差异并非完全闻所未闻,也并不一定表明某个功能不是有意的(例如,参见here https://stackoverflow.com/a/48940730/7207392).
那么,有人知道为什么这有效吗?如果它是一个预期的功能,那么确切的语义是什么/它有什么好处?有没有任何 ND 概括?