[Numpy-discussion] Random int64 and float64 numbers
Thomas Robitaille
thomas.robitaille at gmail.com
Sun Nov 1 20:57:17 EST 2009
Hi,
I'm trying to generate random 64-bit integer values for integers and
floats using Numpy, within the entire range of valid values for that
type. To generate random 32-bit floats, I can use:
np.random.uniform(low=np.finfo(np.float32).min,high=np.finfo
(np.float32).max,size=10)
which gives for example
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])
but if I try and use this for 64-bit numbers, i.e.
np.random.uniform(low=np.finfo(np.float64).min,high=np.finfo
(np.float64).max,size=10)
I get
array([ Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf])
Similarly, for integers, I can successfully generate random 32-bit
integers:
np.random.random_integers(np.iinfo(np.int32).min,high=np.iinfo
(np.int32).max,size=10)
which gives
array([-1506183689, 662982379, -1616890435, -1519456789, 1489753527,
-604311122, 2034533014, 449680073, -444302414,
-1924170329])
but am unsuccessful for 64-bit integers, i.e.
np.random.random_integers(np.iinfo(np.int64).min,high=np.iinfo
(np.int64).max,size=10)
which produces the following error:
OverflowError: long int too large to convert to int
Is this expected behavior, or are these bugs?
Thanks for any help,
Thomas
More information about the NumPy-Discussion
mailing list