我有一个用0和1填充的numpy数组,在创建数组之后,我需要用1替换其中的一些零。下面是数组的代码:
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替换,或者根本没有被替换。有没有办法只替换一些零?
发布于 2017-11-30 08:40:28
这个怎么样:
grid += np.random.binomial(1, 0.9, size=grid.shape) * (grid == 0)
发布于 2017-11-30 08:38:18
而不是一次抽签,而是多次抽签。
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])
发布于 2017-11-30 08:39:40
你最好再试一次。
对我来说,洗牌方法是可行的。
np.random.shuffle(grid)
虽然似乎只有在两次使用之后才起作用.
https://stackoverflow.com/questions/47577993
复制