替换numpy数组中的数字

时间:2017-11-30 16:22:01

标签: python numpy

我有一个用零和一个填充的numpy数组,在创建数组之后,我需要用一些零替换一些零。这是我的数组代码:

grid = np.random.randint(0, 2, size=(4,4)) 
np.random.shuffle(grid)

我试过了:

grid[grid == 0] = np.random.binomial(1, 0.9, size = None)

grid[grid == 0] = np.random.randint(0, 2)

然后所有的零都被替换为1或根本没有被替换。有没有办法只替换一些零?

3 个答案:

答案 0 :(得分:1)

而不是单次绘制,多次绘制

grid = np.random.randint(0, 2, size=(4,4))
np.random.shuffle(grid)

grid[grid==0] = np.random.binomial(1, 0.5, size = grid[grid==0].shape[0])

答案 1 :(得分:1)

这个怎么样:

grid += np.random.binomial(1, 0.9, size=grid.shape) * (grid == 0)

答案 2 :(得分:0)

你最好再试一次。

对我来说,shuffle方法有效。

np.random.shuffle(grid)

虽然似乎只在两次应用后才起作用....