我對 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
有人可以向我解釋為什么第一個代碼不起作用,盡管兩個代碼基本相同?
提前致謝,新年快樂!
uj5u.com熱心網友回復:
不要為此使用 for 回圈,試試這個:
rng = np.random.default_rng()
y=rng.integers(10,size=(8,8))
y[y==0] = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/400223.html
上一篇:為什么它將輸出回傳為n
下一篇:如何在特定節點停止深度優先搜索
