【问题标题】:IndexError: index X is out of bounds for axis 0 with size Y (Python)IndexError:索引 X 超出轴 0 的范围,大小为 Y(Python)
【发布时间】: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


    【解决方案1】:

    不要为此使用 for 循环,试试这个:

    rng = np.random.default_rng()
    y=rng.integers(10,size=(8,8))
    
    y[y==0] = 1
    

    【讨论】:

      猜你喜欢
      • 2018-02-26
      • 1970-01-01
      • 2017-02-16
      • 2019-08-26
      • 2021-11-18
      • 2019-07-30
      • 2020-04-24
      • 2021-05-16
      • 1970-01-01
      相关资源
      最近更新 更多