我试图用增加的整数填充任意数组,但失败了:
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
列表中的所有数组都保持为零。为什么呢?
答案 0 :(得分:1)
那是因为你的计数器和循环变量是相同的:value
。
for index, _ in np.ndenumerate(xs[i]):
xs[i][list(index)] = value
value += 1
每次循环迭代时, value
取0,重置实际计数值。用下划线隐藏它,我不相信你需要它。
或者,您可以使用np.arange
并重塑:
xs = np.arange(sz * np.prod(sh))