【发布时间】:2017-10-02 07:32:21
【问题描述】:
我有一个数组 A,我想创建数组 B 和 C。
基本上,我想在A中随机找到100个元素,将它们放在B中,其余的放在C中。
如果我使用 numpy.random.choice,我可以通过提取 A 中与随机列表中的索引匹配的所有元素来轻松创建 B,但我必须再次通过 A 才能找到所有符合不在 B 中并将它们放在 C 中。这可行,但也许有一个内置函数可以为我做到这一点。
有没有更便宜的方法?
【问题讨论】:
-
也许其他用户能够想出一个绝妙的解决方案,但我敢打赌,使用屏蔽操作是可行的方法。生成一个布尔数组
mask = np.ones(A.shape[0], dtype=bool);使用随机生成器将元素设置为 False;C = A[mask];B = A[~mask]
标签: python arrays numpy random