我想使用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屬性,因爲它會拋出無效索引。
這是怎麼發生的?它的目的是?