我以前看过一两次,但我似乎找不到任何官方文档:range在 numpy 中使用 python对象作为索引。
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 概括?
喵喵时光机
相关分类