我想使用numpy.ndarray迭代器的flatiter.coords属性,但我遇到了奇怪的行为。考虑简单的程序在numpy中,为什么flatiter访问过ndarray的末尾?
xflat = np.zeros((2, 3)).flat
while True:
try:
print(xflat.coords)
xflat.next()
except StopIteration:
break
此代码产生以下输出:
(0, 0)
(0, 1)
(0, 2)
(1, 0)
(1, 1)
(1, 2)
(2, 0)
最后一个坐标是无效的 - 没有(2,0)的坐标。这意味着我不能进一步检查使用flatiter.coords属性,因为它会抛出无效索引。
这是怎么发生的?它的目的是?