【发布时间】:2022-01-01 18:20:14
【问题描述】:
我对 Python 很陌生,所以我可能只是在监督一些事情:
创建一个随机的 8x8 numpy.ndarray 后,我尝试使用“for”循环将所有 0 值更改为 1。
以下代码不起作用:
rng = np.random.default_rng()
y=rng.integers(10,size=(8,8))
for i in range (0,len(np.where(y==0)[0])):
y[np.where(y==0)[0][i],np.where(y==0)[1][i]] = 1
我收到“IndexError: index X is out of bounds for axis 0 with size Y”错误,其中 X 和 Y 由于 y 数组的随机性而不断变化。
但是,如果我添加一些变量而不是一次编写整个代码,它就可以工作。代码如下所示:
rng = np.random.default_rng()
y=rng.integers(10,size=(8,8))
index_x,index_y=np.where(y==0)
for i in range(0,len(index_x)):
y[index_x [i],index_y[i]] = 1
有人可以向我解释为什么第一个代码不起作用,尽管两个代码基本相同?
提前致谢,新年快乐!
【问题讨论】:
标签: python indexing index-error