[英]How to enumerate arbitrary nd-array with write enabled in Numpy?
我試圖用遞增的整數填充任意數組,但失敗了:
import numpy as np
sz = 3
sh = (30, 10, 10, 3)
xs = []
for i in range(sz):
xs.append(np.zeros(sh))
value = 0
for i in range(sz):
for index, value in np.ndenumerate(xs[i]):
xs[i][list(index)] = value
value += 1
在執行以下代碼之后, xs
列表中的所有數組均保持為零。 為什么?
這是因為您的計數器和循環變量是相同的: value
。
for index, _ in np.ndenumerate(xs[i]):
xs[i][list(index)] = value
value += 1
每次循環,該value
將變為0,從而重置實際計數值。 用下划線隱藏它,我認為您不需要它。
另外,您可以使用np.arange
並重新np.arange
:
xs = np.arange(sz * np.prod(sh))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.