Python 不指定最小值和最大值的随机二维数组

Python 不指定最小值和最大值的随机二维数组,python,arrays,numpy,random,integer,Python,Arrays,Numpy,Random,Integer,在Python中,是否有一种方法可以使用带有随机整数项的numpy生成2d数组,而不指定低或高 我尝试了mat=np.random.randint(size=(3,4)),但没有成功。如果不想指定数组的最小值或最大值,可以使用 然后用,如图所示 请注意,输出可能会有所不同,因为值是随机的 如果要指定最小值和最大值,可以使用多种方法,例如 mat = (np.random.random((3,4))*10).astype(np.int) # Random ints between 0 and 1

在Python中,是否有一种方法可以使用带有随机整数项的
numpy
生成2d数组,而不指定低或高


我尝试了
mat=np.random.randint(size=(3,4))
,但没有成功。

如果不想指定数组的最小值或最大值,可以使用

然后用,如图所示

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


如果要指定最小值和最大值,可以使用多种方法,例如

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


还有更多。

不,从数学上讲,不可能创建一个范围为(-inf,inf)的均匀分布的随机数生成器,但可以使用其他分布。你可以用正态分布对值进行四舍五入,我不明白。OP要求“不指定低或高的整数项”,而您提供了一个带小数的解决方案和两个带低和高的解决方案。@ThomasSablik第一个解决方案只有小数,因为我忘记添加
astype(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