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 (端点为False)和 RandomState.random_integers (端点为真)

从指定数据类型的“离散均匀”分布返回随机整数。如果 high 为“无”(默认值),则结果从0到 low .

参数
lowint或类似数组的int

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

highint或类似数组的int,可选

如果提供,将从分布中提取的最大(有符号)整数上方的一个(请参见上面的行为,如果 high=None ). 如果类似于数组,则必须包含整数值

sizeint或int的元组,可选

输出形状。如果给定的形状是,例如, (m, n, k) 然后 m * n * k 取样。默认值为无,在这种情况下返回单个值。

dtype可选类型

结果的所需数据类型。字节顺序必须是本机的。默认值为np.int64型.

endpoint可选的布尔

如果为真,则从间隔中取样 [低,高] 而不是默认值[低,高]默认为False

返回
out整数或整数数组

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

笔记

使用uint64数据类型的广播时,最大值(2 64)不能表示为标准整数类型。高位数组(如果高位为无,则为低位)必须具有对象数据类型,例如array([2 64]).

工具书类

1

Daniel Lemire.,“区间内快速随机整数生成”,ACM建模与计算机仿真学报29(1),2019,http://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整数数组,包括:

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

生成具有3个不同上界的1x3数组

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

生成具有3个不同下界的1×3数组

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

使用数据类型为uint8的广播生成2×4数组

>>> rng.integers([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
array([[ 8,  6,  9,  7],
       [ 1, 16,  9, 12]], dtype=uint8)  # random