gpt4 book ai didi

python - 从 numpy 2D 数组中随机选择特定百分比的单元格

转载 作者:行者123 更新时间:2023-12-01 02:46:10 24 4
gpt4 key购买 nike

我已经关注了。二维 numpy 数组:

array([[[-32768, -32768, -32768, ..., -32768, -32768, -32768],
[-32768, -32768, -32768, ..., -32768, -32768, -32768],
[-32768, -32768, -32768, ..., -32768, -32768, -32768],
...,
[-32768, -32768, -32768, ..., -32768, -32768, -32768],
[-32768, -32768, -32768, ..., -32768, -32768, -32768],
[-32768, -32768, -32768, ..., -32768, -32768, -32768]]], dtype=int16)

具有以下唯一值:

array([-32768,    401,    402,    403,    404], dtype=int16)

有没有办法创建一个新数组,其中 10% 的 401 单元格更改为 500?我可以使用 np.random.random_sample() 来启动,但不能使用如何选择指定百分比的单元格(例如,从这个 numpy 2D 数组中选择 10%)

最佳答案

a表示你的数组。然后这将完成这项工作:

locs=np.vstack(np.where(a==401)).T
n=len(locs)
changes_loc=np.random.permutation(locs)[:n//10]
a[changes_loc[:,0],changes_loc[:,1]]=500

这是一个小示例(使用不同的数字和 25% 而不是 10%,只是为了描述行为):

a=np.array([[1,2,3],[4,1,5],[1,1,7]])
locs=np.vstack(np.where(a==1)).T
n=len(locs)
changes_loc=np.random.permutation(locs)[:n//4]
a[changes_loc[:,0],changes_loc[:,1]]=70

结果是

array([[70,  2,  3],
[ 4, 1, 5],
[ 1, 1, 7]])

关于python - 从 numpy 2D 数组中随机选择特定百分比的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45244787/

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