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 (with endpoint=False) 和 RandomState.random_integers (with endpoint=True)

从指定 dtype 的"离散均匀"分布中返回随机整数.如果 high 为 None(默认值),则结果从 0 到 low .

参数:
lowint 或类数组的 int

要从分布中抽取的最小(有符号)整数(除非 high=None ,在这种情况下,此参数为 0 并且此值用于 high ).

highint 或类数组的 int,可选

如果提供,则比要从分布中抽取的最大(有符号)整数大 1(有关 high=None 时的行为,请参见上文).如果为类数组,则必须包含整数值

sizeint 或 int 元组,可选

输出形状. 如果给定形状,例如 (m, n, k) ,则抽取 m * n * k 个样本. 默认为 None,在这种情况下,返回单个值.

dtypedtype,可选

结果所需的 dtype.字节顺序必须是 native.默认值为 np.int64.

endpointbool,可选

如果为 true,则从区间 [low, high] 而不是默认的 [low, high) 中采样.默认为 False

返回:
outint 或整数的 ndarray

size -形状的来自适当分布的随机整数数组,如果未提供 size ,则为单个这样的随机整数.

注释

当将广播与 uint64 dtype 结合使用时,最大值 (264) 无法表示为标准整数类型.high 数组(如果 high 为 None,则为 low 数组)必须具有 object dtype,例如,array([264]).

参考文献

[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])

生成一个介于 0 和 4 之间的 2 x 4 int 数组,包括 0 和 4:

>>> rng.integers(5, size=(2, 4))
array([[4, 0, 2, 1],
       [3, 2, 2, 0]])  # random

生成一个具有 3 个不同上限的 1 x 3 数组

>>> rng.integers(1, [3, 5, 10])
array([2, 2, 9])  # random

生成一个具有 3 个不同下限的 1 x 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