如何在Numpy中启用写入时枚举任意nd-array?

时间:2017-07-28 18:36:34

标签: python arrays 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列表中的所有数组都保持为零。为什么呢?

1 个答案:

答案 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))