【发布时间】:2015-05-23 23:41:42
【问题描述】:
这是我在 StackOverflow 上关于 Python/Numpy 编码的第二个问题。
我觉得肯定有某种函数可以执行伪代码:
np.random.choice([a[i-1,j],a[i+1,j],a[i,j-1],a[i,j+1]])==0 = 9
基本上,我希望随机函数选择与我相邻的单元格(上、下、左、右),值为 0,并用 9 替换所述单元格
不幸的是,我知道为什么我输入的代码是非法的。语句的前半部分返回一个 True/False 布尔值,因为我使用了比较/检查运算符。我无法将其设置为值 9。
如果我将代码加载分成两个代码并使用带有 random.choice 的 if 语句(查看等于零的相邻元素),那么在此之后,我需要某种函数或定义来回忆哪个单元格(左上或右上)是随机生成器最初选择的,然后我可以将其设置为 9。
亲切的问候,
编辑:我不妨附上一个示例代码,这样你就可以简单地运行它(我包括我的错误)
a = np.empty((6,6,))
a[:] = 0
a[2,3]=a[3,3]=a[2,4] = 1
for (i,j), value in np.ndenumerate(a):
if a[i,j]==1:
np.random.choice([a[i-1,j],a[i+1,j],a[i,j-1],a[i,j+1]])==0 = 9
【问题讨论】:
标签: python arrays numpy random