gpt4 book ai didi

python - 如何从多个等长数组中删除相同的随机项?

转载 作者:行者123 更新时间:2023-11-28 20:26:28 24 4
gpt4 key购买 nike

我有几个大小为 (20000,1) 且内容不同的数组。我想随机删除每个数组所有行的 25%,这样每个数组都删除了相同的行。我发现的一种相当繁琐的方法如下:

import numpy as np

a=np.array(range(1000))
b=np.array(np.random.rand(1000))
seed=np.random.randint(0,100000000) #picking a random seed
np.random.seed(seed) #Setting the same seed for each deletion
a[np.random.rand(*a.shape) < .25] = 0
np.random.seed(seed)
b[np.random.rand(*b.shape) < .25] = 0
a=a[a !=0]
b=b[b !=0]

这种方法有几个问题,例如如果数组已经包含零怎么办?有更好的方法吗?

最佳答案

基于并扩展自 Joel Cornett 的解决方案:

import numpy as np

length = 20000
limit = int(0.75*length)
keep = np.random.permutation(length)[:limit]

newArray = oldArray[keep]

关于python - 如何从多个等长数组中删除相同的随机项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811190/

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