numpy.random.Generator.integers#
method
- 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 或类数组的 ints
要从分布中抽取的最小(有符号)整数(除非
high=None,在这种情况下,此参数为 0,并且此值用于 high ).- highint 或类数组的 ints,可选
如果提供,则比要从分布中抽取的最大(有符号)整数大 1(有关
high=None时的行为,请参见上文).如果为类数组,则必须包含整数值- sizeint 或 int 的元组,可选.
输出形状.如果给定的形状是,例如
(m, n, k),则抽取m * n * k个样本.默认值为 None,在这种情况下,将返回单个值.- dtypedtype, optional
结果所需的 dtype.字节序必须是 native.默认值为 np.int64.
- endpointbool, 可选
如果为 true,则从区间 [low, high] 中采样,而不是默认的 [low, high) 默认为 False
- 返回:
- outint 或 ints 的 ndarray
来自适当分布的 size 形状的随机整数数组,如果未提供 size ,则为单个此类随机 int.
注释
当使用 uint64 dtypes 进行广播时,最大值 (264) 无法表示为标准整数类型.high 数组(或 low,如果 high 为 None)必须具有 object dtype,例如,数组( [264]).
参考
[1]Daniel Lemire., “区间内快速随机整数生成”, 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])
生成一个 2 x 4 的整数数组,介于 0 和 4 之间,包括 0 和 4:
>>> rng.integers(5, size=(2, 4)) array([[4, 0, 2, 1], [3, 2, 2, 0]]) # random
生成一个 1 x 3 的数组,具有 3 个不同的上限
>>> rng.integers(1, [3, 5, 10]) array([2, 2, 9]) # random
生成一个 1 x 3 的数组,具有 3 个不同的下限
>>> rng.integers([1, 5, 7], 10) array([9, 8, 7]) # random
使用广播和 uint8 的 dtype 生成一个 2 x 4 的数组
>>> rng.integers([1, 3, 5, 7], [[10], [20]], dtype=np.uint8) array([[ 8, 6, 9, 7], [ 1, 16, 9, 12]], dtype=uint8) # random