Tôi đang cố tạo các giá trị số nguyên 64 bit ngẫu nhiên cho số nguyên và phao bằng Numpy, trong phạm vi toàn bộ các giá trị hợp lệ cho loại. Để tạo nổi 32-bit ngẫu nhiên, tôi có thể sử dụng:Số int64 và float64 ngẫu nhiên
In [2]: np.random.uniform(low=np.finfo(np.float32).min,high=np.finfo(np.float32).max,size=10)
Out[2]:
array([ 1.47351436e+37, 9.93620693e+37, 2.22893053e+38,
-3.33828977e+38, 1.08247781e+37, -8.37481260e+37,
2.64176554e+38, -2.72207226e+37, 2.54790459e+38,
-2.47883866e+38])
nhưng nếu tôi cố gắng và sử dụng đối với số lượng 64-bit, tôi nhận được
In [3]: np.random.uniform(low=np.finfo(np.float64).min,high=np.finfo(np.float64).max,size=10)
Out[3]: array([ Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf])
Tương tự như vậy, đối với số nguyên, tôi có thể tạo ra thành công số nguyên ngẫu nhiên 32-bit:
In [4]: np.random.random_integers(np.iinfo(np.int32).min,high=np.iinfo(np.int32).max,size=10)
Out[4]:
array([-1506183689, 662982379, -1616890435, -1519456789, 1489753527,
-604311122, 2034533014, 449680073, -444302414, -1924170329])
nhưng tôi không thành công cho số nguyên 64-bit:
In [5]: np.random.random_integers(np.iinfo(np.int64).min,high=np.iinfo(np.int64).max,size=10)
---------------------------------------------------------------------------
OverflowError Traceback (most recent call last)
/Users/tom/tmp/<ipython console> in <module>()
/Library/Python/2.6/site-packages/numpy/random/mtrand.so in mtrand.RandomState.random_integers (numpy/random/mtrand/mtrand.c:6640)()
/Library/Python/2.6/site-packages/numpy/random/mtrand.so in mtrand.RandomState.randint (numpy/random/mtrand/mtrand.c:5813)()
OverflowError: long int too large to convert to int
Hành vi này có được mong đợi hay tôi nên báo cáo những lỗi này là lỗi trong Numpy?
là bạn có thể giải quyết mà cuối cùng? – Avision