gpt4 book ai didi

python - Numpy:替换数组中的随机元素

转载 作者:太空狗 更新时间:2023-10-29 22:10:59 25 4
gpt4 key购买 nike

我已经用谷歌搜索了一下,没有找到任何好的答案。

问题是,我有一个 2d numpy 数组,我想在随机位置替换它的一些值。

我找到了一些使用 numpy.random.choice 创建的答案数组的掩码。不幸的是,这不会创建原始数组的 View ,因此我无法替换它的值。

所以这是我想做的一个例子。

假设我有一个带有浮点值的二维数组。

[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]]

然后我想替换任意数量的元素。如果我能用参数调整就好了有多少元素将被替换。可能的结果如下所示:

[[ 3.234, 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 2.234]]

我想不出完成此任务的好方法。感谢您的帮助。

最佳答案

只需用一个随机的相同形状的数组来掩盖您的输入数组。

import numpy as np

# input array
x = np.array([[ 1., 2., 3.], [ 4., 5., 6.], [ 7., 8., 9.]])

# random boolean mask for which values will be changed
mask = np.random.randint(0,2,size=x.shape).astype(np.bool)

# random matrix the same shape of your data
r = np.random.rand(*x.shape)*np.max(x)

# use your mask to replace values in your input array
x[mask] = r[mask]

产生这样的东西:

[[ 1.          2.          3.        ]
[ 4. 5. 8.54749399]
[ 7.57749917 8. 4.22590641]]

关于python - Numpy:替换数组中的随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31389481/

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