使用掩码技术。首先,我们生成一个与之相同维度的矩阵,其中包含随机数,并检查这些数字是否大于0.8
:
mask = np.random.random(a.shape) > 0.8
现在我们可以将
mask
为
True
的
b
值分配给相应的
a
索引:
a[mask] = b[mask]
例如:
>>> a
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
>>> b
array([[2, 3, 4, 5],
[6, 7, 8, 9],
[0, 2, 3, 4]])
>>> mask = np.random.random(a.shape) > 0.8
>>> mask
array([[ True, False, False, False],
[ True, False, False, False],
[False, False, False, False]])
>>> a[mask] = b[mask]
>>> a
array([[2., 1., 1., 1.],
[6., 1., 1., 1.],
[1., 1., 1., 1.]])
所以这里当mask
是True
时(由于0.8
相当高,我们预计平均会有2.4个这样的值),我们给b
赋上相应的值。