我有几个大小不同的数组(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]
这种方法有几个问题,例如如果数组已经包含零怎么办?有没有更好的方法来做到这一点?