我用一個numpy數組來表示一個直立的正方形網格(一個元素連接到上面的一個,下面的一個連接到右邊和左邊,但不是對角線)。我需要從網格中選擇一個隨機元素,並將其值更改爲隨機相鄰元素的值。有沒有簡單的方法來做到這一點?從numpy數組中選擇一個相鄰的元素
目前我最好的想法是從行和列索引隨機化,然後嘗試如果元素有四個鄰居,然後嘗試如果左側缺失,然後右側,然後頂部,然後底部,最後嘗試四角落。這看起來很麻煩。
我的數據是-1,+ 1隨機分佈在格:
lattice=np.random.uniform(low=0.0, high=1.0, size=[30,30])
lattice[lattice<0.2]=-1
lattice[lattice>0.2]=1
所以說隨機元是lattice[0,0]
,那麼我期待返回的格子是
lattice[0,0]=np.random.choice([lattice[0,1], lattice[1,0]])
編輯:我很抱歉以前誤導複數的使用。
什麼是你的數據樣子?提供一些示例輸入和預期輸出plz – zhangxaochen
您是否想要一次或一次對所有元素執行此操作? – YXD