gpt4 book ai didi

python - Numpy 用另一个数组的特定行和列替换一个数组的特定行和列

转载 作者:太空狗 更新时间:2023-10-30 02:37:15 25 4
gpt4 key购买 nike

我正在尝试替换 Numpy 数组的特定行和列,如下所示。

数组a和b的值初始如下:

a = [[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]

b = [[2 3 4 5]
[6 7 8 9]
[0 2 3 4]]

现在,基于一定的概率,我需要用 b 的值对 a 执行逐元素替换(比如,在生成随机数后, r,每个元素都在 0 到 1 之间,如果 r > 0.8,我会将 a 的元素替换为 b 的元素。

我如何使用 numpy/scipy 在 Python 中以高性能执行此操作?

最佳答案

带有掩蔽。我们首先生成一个具有相同维度的随机数矩阵,并检查它们是否大于 0.8:

mask = np.random.random(a.shape) > 0.8

现在我们可以将 b 的值分配给 a 的相应索引,其中 maskTrue:

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.]])

所以在这里 maskTrue(因为 0.8 相当高,我们预计平均有 2.4 个这样的值),我们分配b的对应值。

关于python - Numpy 用另一个数组的特定行和列替换一个数组的特定行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50775532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com