擅长:python、mysql、java
<p>不是为了帮你解决整个问题,带走所有的乐趣,但我相信缺少的部分是<code>np.where</code>:</p>
<pre><code>import numpy as np
forest = np.random.randint(0, 2, (10,10))
x, y = np.where(forest == 1)
print(x) # up down
print(y) # left right
</code></pre>
<p>此函数输出矩阵中的x、y坐标,您可以使用该坐标对其执行测试,并在相邻单元格(坐标)中对其执行操作</p>
<p>您可以像这样组合这些坐标对以在其上迭代:</p>
<pre><code>coord_pairs = np.vstack((x,y))
coord_pairs.shape # (2, 48)
coord_pairs[0,:] # x
coord_pairs[1,:] # y
for k in range(coord_pairs.shape[1]):
print(f"x:{coord_pairs[0,k]}, y:{coord_pairs[1,k]}")
</code></pre>
<p>还需要<a href="https://stackoverflow.com/a/55339123/3243159">state management as explained in this other answer on your question</a></p>