【发布时间】:2012-08-02 09:57:57
【问题描述】:
我有几个大小为 (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]
这种方法有几个问题,例如如果数组已经包含零怎么办? 有更好的方法吗?
【问题讨论】:
标签: python arrays numpy python-2.7