首页 > 解决方案 > 不指定最小值和最大值的随机二维数组

问题描述

在 Python 中,有没有办法使用numpy随机整数条目生成二维数组而不指定低或高?

我试过mat = np.random.randint(size=(3, 4))了,但没有用。

标签: pythonarraysnumpyrandominteger

解决方案


假设您不想指定数组的最小值或最大值,可以使用numpy.random.normal

np.random.normal(mean, standard deviation, (rows,columns))

然后用astype(np.int), 将其四舍五入

>>> import numpy as np
>>> mat = (np.random.normal(1, 3, (3,4))).astype(np.int)
[[ 0  0  0 -1]
[ 0  5  0  0]
[-5  1  2  2]]

请注意,输出可能会有所不同,因为这些值是随机的。


如果要指定最小值和最大值,有多种方法可以做到这一点,例如

mat = (np.random.random((3,4))*10).astype(np.int) # Random ints between 0 and 10

或者

mat = np.random.randint(1,5, size=(3,4)) # Random ints between 1 and 5

和更多。


推荐阅读