[Numpy-discussion] array of random numbers fails to construct

Matthew Brett matthew.brett at gmail.com
Tue Dec 8 19:46:25 EST 2015


Hi,

On Tue, Dec 8, 2015 at 4:40 PM, Stephan Hoyer <shoyer at gmail.com> wrote:
> On Sun, Dec 6, 2015 at 3:55 PM, Allan Haldane <allanhaldane at gmail.com>
> wrote:
>>
>>
>> I've also often wanted to generate large datasets of random uint8 and
>> uint16. As a workaround, this is something I have used:
>>
>> np.ndarray(100, 'u1', np.random.bytes(100))
>>
>> It has also crossed my mind that np.random.randint and np.random.rand
>> could use an extra 'dtype' keyword. It didn't look easy to implement though.
>
>
> Another workaround that avoids creating a copy is to use the view method,
> e.g.,
> np.random.randint(np.iinfo(int).min, np.iinfo(int).max,
> size=(1,)).view(np.uint8)  # creates 8 random bytes

I think that is not quite (pseudo) random because the second parameter
to randint is the max value plus 1 - and:

np.random.random_integers(np.iinfo(int).min, np.iinfo(int).max + 1,
size=(1,)).view(np.uint8)

gives:

OverflowError: Python int too large to convert to C long

Cheers,

Matthew



More information about the NumPy-Discussion mailing list