簡體   English   中英

如何枚舉在Numpy中啟用寫入的任意nd數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM