numpy.random.Generator.integers#
方法
- random.Generator.integers(low, high=None, size=None, dtype=np.int64, endpoint=False)#
从 low(包含)到 high(不包含)返回随机整数。如果 endpoint=True,则从 low(包含)到 high(包含)返回随机整数。替换 RandomState.randint(endpoint=False)和 RandomState.random_integers(endpoint=True)。
从指定 dtype 的“离散均匀”分布返回随机整数。如果 high 为 None(默认值),则结果范围为 0 到 low。
- 参数:
- lowint 或 int 的数组类
从分布中绘制的最低(有符号)整数(除非
high=None,在这种情况下,此参数为 0,而此值用于 high)。- highint 或 int 的数组类,可选
如果提供,则为从分布中绘制的最高(有符号)整数之上一个(有关
high=None时行为的说明,请参阅上文)。如果为数组类,则必须包含整数值。- sizeint 或 int 的元组,可选
输出形状。如果给定的形状例如是
(m, n, k),则将抽取m * n * k个样本。默认为 None,在这种情况下返回单个值。- dtypedtype, optional
结果所需的 dtype。字节顺序必须是原生的。默认值为 np.int64。
- endpointbool,可选
如果为 true,则从区间 [low, high] 而不是默认的 [low, high) 中采样。默认为 False。
- 返回:
备注
在使用 uint64 dtype 进行广播时,最大值(2**64)无法表示为标准整数类型。high 数组(或 low,如果 high 为 None)必须具有 object dtype,例如 array([2**64])。
参考
[1]Daniel Lemire.,“Fast Random Integer Generation in an Interval”,ACM Transactions on Modeling and Computer Simulation 29 (1),2019,https://arxiv.org/abs/1805.10941。
示例
>>> rng = np.random.default_rng() >>> rng.integers(2, size=10) array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0]) # random >>> rng.integers(1, size=10) array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
生成一个 2x4 的整数数组,范围在 0 到 4 之间(包含)。
>>> rng.integers(5, size=(2, 4)) array([[4, 0, 2, 1], [3, 2, 2, 0]]) # random
生成一个 1x3 的数组,具有 3 个不同的上限。
>>> rng.integers(1, [3, 5, 10]) array([2, 2, 9]) # random
生成一个 1x3 的数组,具有 3 个不同的下限。
>>> rng.integers([1, 5, 7], 10) array([9, 8, 7]) # random
使用 dtype 为 uint8 的广播生成一个 2x4 的数组。
>>> rng.integers([1, 3, 5, 7], [[10], [20]], dtype=np.uint8) array([[ 8, 6, 9, 7], [ 1, 16, 9, 12]], dtype=uint8) # random