Nil*_*ner 11
创建一个False值数组,将1000它们的第一个元素设置为True:
a = np.full(10000, False)
a[:1000] = True
Run Code Online (Sandbox Code Playgroud)
然后简单地将阵列洗牌
np.random.shuffle(a)
Run Code Online (Sandbox Code Playgroud)
对于稍微快一点的解决方案,您还可以创建一个整数零的数组,将一些值设置为1,随机播放并将其强制转换为bool:
a = np.zeros(10000, dtype=int)
a[:1000] = 1
np.random.shuffle(a)
a = a.astype(bool)
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,您将拥有一个阵列,a其中包含1000个True随机位置的元素.
相反,如果您想要从中单独挑选每个元素,[True, False]您可以使用
np.random.choice([True, False], size=10000, p=[0.1, 0.9])
Run Code Online (Sandbox Code Playgroud)
但请注意,您无法预测True数组中的元素数量.你只知道你平均有1000个.
In [7]: import numpy as np
In [8]: mask=np.array( [False]*10000)
In [9]: inds=np.random.choice(np.arange(10000),size=1000)
In [10]: mask[inds]=True
Run Code Online (Sandbox Code Playgroud)
现在你的掩码的前 100 个元素是
In [11]: print(mask[:100])
[False False False False False True False False False False False False
False False False False False False False False False False True False
False False False False False False False True True False True False
False False False False False False False False False False True False
True False False False False False False False False False False False
False False False False False False True False False False False False
False False True False False False False False False False False False
False False True False False False False False False False False False
False False False False]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3758 次 |
| 最近记录: |