Numpy 切片 - 奇怪的行为
Numpy Slicing - Strange behavior
我对 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 处的示例,它处于循环的第二次迭代的中间。
你能帮帮我吗?
谢谢!
idx
的最大值在您使用它进行索引时将为 31,因此在您增加它之前。从数组索引 31 开始,您会将 40 个元素设置为 1。最后一个这样的元素位于索引 31+39,即 70。索引 71 处的元素仍然为 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 处的示例,它处于循环的第二次迭代的中间。
你能帮帮我吗? 谢谢!
idx
的最大值在您使用它进行索引时将为 31,因此在您增加它之前。从数组索引 31 开始,您会将 40 个元素设置为 1。最后一个这样的元素位于索引 31+39,即 70。索引 71 处的元素仍然为 0。