0

我对 Numpy 有疑问。基本上我只想在 for 循环中做一个简单的赋值。但奇怪的是,这不起作用。这是我的示例代码:

import numpy as np
test = np.zeros((1280,),dtype=int)
idx = 0
for i in range(32):
       test[idx:idx+40] = np.ones((40,),int)*1
       idx = idx + 1
print(np.where(test==0))

我会假设在循环之后所有的值test都等于 1,但是我的程序的输出是 (array([ 71, 72, 73, ..., 1277, 1278, 1279]),) 我不明白为什么数组中仍然有 0 的值。尤其是在索引 72 处,它位于循环的第二次迭代的中间。

请你帮助我好吗?谢谢!

4

1 回答 1

1

idx当您将其用于索引时,最大值将为 31,因此在您增加它之前。从数组索引 31 开始,您会将 40 个元素设置为 1。最后一个这样的元素位于索引 31+39,即 70。索引 71 处的元素仍然为 0。

于 2021-05-05T14:14:46.547 回答