在2D数组中查找随机元素,然后对其执行操作

时间:2017-12-07 19:36:54

标签: arrays python-3.x random

我需要在2D数组中找到一个随机元素,如标题所示。然后我需要对此进行操作。

例如:

Grid = np.zeros((64,64))
ones = np.ones((32,64))
minus = -1 * ones
Grid[0:32,:] = ones[:]
Grid[32:64,:] = minus[:]

所以它的一半是1,一半是-1。然后我需要选择这个2D数组的随机元素,并对其进行操作。

例如,它需要执行以下操作:

def change(Grid):
    Grid[0,0] *= -1

但对于此列表中的随机元素,但显然下面的代码不起作用。

Grid[random.choice,random.choice] *= -1

有没有办法用random.choice执行此操作,还是有其他方法可以使其工作?

1 个答案:

答案 0 :(得分:0)

由于你已经在NumPy,你可以使用np.random.randint

n, m = Grid.shape
row = np.random.randint(0, n)
col = np.random.randint(0, m)
Grid[row, col] *= -1